zoukankan      html  css  js  c++  java
  • 后端程序员之路 43、Redis list

    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;
    }

  • 相关阅读:
    【matlab】学习笔记 2脚本编写
    【matlab】学习笔记 1 入门简单操作
    【matlab】学习笔记 3 函数编写
    MySQL学习笔记
    数据库连接-----MySQL -> JDBC
    leetcode——Mysql数据库查询题目
    不同单词个数统计
    初始化二维数组
    JS基本变量类型和对象杂谈
    LeetCode Clone Graph
  • 原文地址:https://www.cnblogs.com/zapline/p/6760138.html
Copyright © 2011-2022 走看看