Redis数据类型之LIST类型 - Web程序猿 - 博客频道 - CSDN.NET
http://blog.csdn.net/thinkercode/article/details/46565051

Redis的list是一个双向链表,应用场景很多,比如微博的关注列表,粉丝列表等都可以用Redis的list结构来实现;博客实现中,可为每篇日志设置一个list,在该list中推入进博客评论;也可以使用Redis list实现消息队列。

# list命令
- LPUSH/RPUSH
    - LPUSH key value [value …]
    - 头尾插入元素
- LPUSHX/RPUSHX
    - LPUSHX key value
    - 头尾插入元素,只在key对应一个list时生效
- LPOP/RPOP
    - LPOP key
    - 移除并返回头尾元素
- BLPOP/BRPOP
    - BLPOP key [key …] timeout
    - B(blocking),pop的阻塞版
- LINSERT
    - LINSERT key BEFORE|AFTER pivot value
    - 在某个值前后插
- LRANGE
    - LRANGE key start stop 
    - 返回列表 key 中指定区间内的元素
    - 以0表示列表的第一个元素
    - -1表示最后一个元素,-2表示倒数第二个元素
- LREM
    - LREM key count value
    - 移除值为value的元素
    - count>0 从前往后移除count个
    - count<0 从后往前移除|count|个
    - count=0 移除所有
- LTRIM
    - LTRIM key start stop
    - 只保留指定区间内的元素
- LINDEX/LSET
    - LINDEX key index 
    - LSET key index value 
    - 读写指定下标的元素
- LLEN
    - LLEN key 
    - 取列表长度
- 其它
    - RPOPLPUSH
    - BRPOPLPUSH

Redis 列表(List) | 菜鸟教程
http://www.runoob.com/redis/redis-lists.html

c++的调用实例:
int bl_redis_client::zrange(const std::string & key, const int start, const int stop, std::vector<std::string> & result)
{
    if (_check_connection() != 0) {
        return -1;
    }
    redisReply * reply = (redisReply *) redisCommand(_context, "ZRANGE %s %d %d", key.c_str(), start, stop);
    if (reply == NULL) {
        _re_connect(true);
    } else if (reply->type != REDIS_REPLY_ARRAY) {
        // not an arry
        // LOG_DEBUG("ZRANGE: response is not an array");
    } else {
        for (size_t i = 0; i < reply->elements; i++) {
            result.push_back(reply->element[i]->str);
        }
    }
    if (reply != NULL) {
        freeReplyObject(reply);
    }
    return 0;
}

后端程序员之路 43、Redis list的更多相关文章

  1. 后端程序员之路 55、go redis

    redigo有点像hiredis,只提供了最基本的连接和执行命令接口. 找到个不错的redis库: https://github.com/go-redis/redis func ExampleNewC ...

  2. 后端程序员之路 46、Redis Sentinel

    Sentinel - Redis 命令参考http://doc.redisfans.com/topic/sentinel.html#sentinel-api Guidelines for Redis ...

  3. 后端程序员之路 44、Redis结合protobuf

    protobuf序列化速度不错,在往Redis里存对象时,用protobuf序列化可以节省内存,省去写序列化反序列化代码的工作. google protocol buffer 与 redis 结合使用 ...

  4. 后端程序员之路 25、Redis Cluster

    官方教程和功能介绍: REDIS cluster-tutorial -- Redis中文资料站 -- Redis中国用户组(CRUG)http://www.redis.cn/topics/cluste ...

  5. 后端程序员之路 24、Redis hiredis

    Redishttps://redis.io/ Redis快速入门 - Redis教程http://www.yiibai.com/redis/redis_quick_guide.html wget ht ...

  6. 后端程序员之路 59、go uiprogress

    gosuri/uiprogress: A go library to render progress bars in terminal applicationshttps://github.com/g ...

  7. 后端程序员之路 49、SSDB

    正如Redis似乎是为替换memcached一样,SSSB是一个国人开发的旨在替换Redis的kv数据库. SSDB - 高性能的支持丰富数据结构的 NoSQL 数据库, 替代 Redishttp:/ ...

  8. 后端程序员之路 48、memcached

    memcached - a distributed memory object caching systemhttp://memcached.org/ Memcached 教程 | 菜鸟教程http: ...

  9. 后端程序员之路 27、LogStash

    访谈与书评:<LogStash,使日志管理更简单>http://www.infoq.com/cn/articles/review-the-logstash-book/ [Logstash] ...

随机推荐

  1. Educational Codeforces Round 90 (Rated for Div. 2) C. Pluses and Minuses(差分)

    题目链接:https://codeforces.com/contest/1373/problem/C 题意 给出一个只含有 $+$ 或 $-$ 的字符串 $s$,按如下伪代码进行操作: res = 0 ...

  2. 再记一次 应用服务器 CPU 暴高事故分析

    一:背景 1. 前言 大概有2个月没写博客了,不是不想写哈

  3. Pyqt5使用

    一.帮助文档 二.PyQt5库结构 三. 面向对象的编程模式 class Windows(QWidget): def __init__(self): #继承父类的QWidget的方法 super(). ...

  4. MHA 高可用介绍

    目录 MHA 介绍 MHA 简介(Master High Availability) MHA 工作原理(转载) MHA 架构 MHA 工具 Manager 节点 Node 节点 MHA 优点 MHA ...

  5. LINUX - pthread_mutex_lock

    原文链接:https://www.cnblogs.com/fengbohello/p/7571722.html 互斥的概念 在多线程编程中,引入了对象互斥锁的概念,来保证共享数据操作的完整性. 每个对 ...

  6. 二进制安装kubernetes(二) kube-apiserver组件安装

    根据架构图,我们的apiserver部署在hdss7-21和hdss7-22上: 首先在hdss7-200上申请证书并拷贝到21和22上: 创建证书文件: # cd /opt/certs # vi c ...

  7. 4.Direct交换机之使用指定routingkey完成日志记录场景

    标题 : 4.Direct交换机之使用指定routingkey完成日志记录场景 目录 : RabbitMQ 序号 : 4 const string logOthersQueueName = " ...

  8. codeforces 5C

    C. Longest Regular Bracket Sequence time limit per test 2 seconds memory limit per test 256 megabyte ...

  9. MacOS微信逆向分析-Frida

    MacOS微信逆向分析-Frida 0.前言 PC下的微信二次开发相信大家都会了,那么本篇文章将带领大家使用Frida框架对Mac下微信来进行二次开发! PS:还有一种静态注入的方式也不错,但是考虑到 ...

  10. CSS3 弹性盒子(Flex Box)

    1 CSS3 弹性盒子(Flex Box) 1 http://caniuse.com/#search=flex%20box https://www.w3.org/TR/css-flexbox-1/ C ...