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. 静态链表 Static Link List

    Static Link List 静态链表 其中上图来自http://www.cnblogs.com/rookiefly/p/3447982.html  参考: http://www.cnblogs. ...

  2. HDU -1506 Largest Rectangle in a Histogram&&51nod 1158 全是1的最大子矩阵 (单调栈)

    单调栈和队列讲解:传送门 HDU -1506题意: 就是给你一些矩形的高度,让你统计由这些矩形构成的那个矩形面积最大 如上图所示,如果题目给出的全部是递增的,那么就可以用贪心来解决 从左向右依次让每一 ...

  3. Codeforces Round #681 (Div. 2, based on VK Cup 2019-2020 - Final) A. Kids Seating (规律)

    题意:给你一个正整数\(n\),在\([1,4n]\)中找出\(n\)个数,使得这\(n\)个数中的任意两个数不互质且不能两两整除. 题解:这题我是找的规律,从\(4n\)开始,往前取\(n\)个偶数 ...

  4. POJ1087 A Plug for UNIX(网络流)

    在会议开始之前,你收集所有记者想要使用的设备,并尝试设置它们.你注意到有些设备使用没有插座的插头.你想知道这些设备是否来自建造这个房间时并不存在的国家.对于一些插座,有几个设备使用相应的插头.对于其他 ...

  5. hdu5358 First One

    Problem Description soda has an integer array a1,a2,-,an. Let S(i,j) be the sum of ai,ai+1,-,aj. Now ...

  6. Codeforces Round #651 (Div. 2) C. Number Game (博弈,数学)

    题意:对于正整数\(n\),每次可以选择使它变为\(n-1\)或者\(n/t\) (\(n\ mod\ t=0\)且\(t\)为奇数),当\(n=1\)时便不可以再取,问先手赢还是后手赢. 题解:首先 ...

  7. 1.PowerShell DSC概述

    什么是PowerShell DSC DSC 是一个声明性平台,用于配置.部署和管理系统. PowerShell PowerShell 是构建于 .NET 上基于任务的命令行 shell 和脚本语言. ...

  8. Qt内部的d指针和q指针手把手教你实现

    Qt内部的d指针和q指针 在讲Qt的D指针之前让我们来简单的解释一下D指针出现的目的,目的是什么呢?保证模块间的二进制兼容. 什么是二进制兼容呢,简单说就是如果自己的程序使用了第三方模块,二进制兼容可 ...

  9. kubeadm---高可用安装

    1.修改主机名 如何使用hostnamectl set-hostname name来为每台主机设置不同的机器名 #hostnamectl set-hostname k8s-master01 或者使用以 ...

  10. 3.keepalived+脚本实现nginx高可用

    标题 : 3.keepalived+脚本实现nginx高可用 目录 : Nginx 序号 : 3 else exit 0 fi else exit 0 fi - 需要保证脚本有执行权限,可以使用chm ...