Redis list链表类型

list类型其实就是一个双向链表。通过push,pop操作从链表的头部或者尾部添加删除元素。这使得list既可以用作(上进上出),也可以用作队列(上进下出)。

list类型操作:

Ipush key string在key对应list的头部添加字符串元素
rpop key从list的尾部删除元素,并返回删除元素
rpush key string在key对应list的尾部添加字符串元素
Ipop key从list的头部删除元素,并返回删除元素
llen key 返回 key对应list的长度,key不存在返回0,如果key对应类型不是list返回错误
Irange key start end返回指定区间内的元素,下标从0开始
Itrim key start end截取list,保留指定区间内元素

该list链表类型应用场合:

例:获得最新的5个登录用户信息:select * from user order by logintime desc limit 5;

以上sql语句可以实现用户需求,但是数据多的时候,全部数据都要受到影响,对数据库的负载比较高。必要情况还需要给关键字段(id或logintime)设置索引,索引也比较耗费系统资源。如果通过list链表实现以上功能,可以在list链表中只保留最新的5个数据,每进来一个新数据就删除一个旧数据,每次就可以从链表中直接获得需要的数据。极大节省各方面资源消耗。

设置一个list链表key login,内部有5个元素:

127.0.0.1:6379[1]> keys *
(empty list or set)
127.0.0.1:6379[1]> lpush login xiaoming
(integer) 1
127.0.0.1:6379[1]> lpush login liqiang
(integer) 2
127.0.0.1:6379[1]> lpush login wangkai
(integer) 3
127.0.0.1:6379[1]> lpush login zhanghua
(integer) 4
127.0.0.1:6379[1]> lpush login baifei
(integer) 5
127.0.0.1:6379[1]> keys *
1) "login"
127.0.0.1:6379[1]> 

该链表每增加一个新元素,就删除一个旧元素,并且通过范围查找链表内部的全部元素信息:

127.0.0.1:6379[1]> lpush login lihong
(integer) 6
127.0.0.1:6379[1]> rpop login
"xiaoming"
127.0.0.1:6379[1]> lrange login 0 4
1) "lihong"
2) "baifei"
3) "zhanghua"
4) "wangkai"
5) "liqiang"
127.0.0.1:6379[1]> lpush login zhaoya
(integer) 6
127.0.0.1:6379[1]> rpop login 
"liqiang"
127.0.0.1:6379[1]> lrange login 0 100
1) "zhaoya"
2) "lihong"
3) "baifei"
4) "zhanghua"
5) "wangkai"
127.0.0.1:6379[1]> 

 截取list,保留指定区间内元素:

127.0.0.1:6379[1]> ltrim login 1 3
OK
127.0.0.1:6379[1]> llen login
(integer) 3
127.0.0.1:6379[1]> lrange login 0 100
1) "lihong"
2) "baifei"
3) "zhanghua"
127.0.0.1:6379[1]> 

转载请注明出处:BestEternity亲笔。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
redis入门手册(中文版)edis简介........................................................................................................................3 2) 数据类型...........................................................................................................................3 2.1. Redis的Key.............................................................................................................3 2.1.1. key相关指令介绍............................................................................................3 2.2. Redis的vaule.........................................................................................................3 2.2.1. string类型.........................................................................................................3 2.2.2. hash类型..........................................................................................................4 2.2.3. list类型..........................................................................................................5 2.2.4. set类型............................................................................................................5 2.2.5. sorted set类型..............................................................................................6 3) 持久化...............................................................................................................................7 3.1. 快照方式:(默认持久化方式) .............................................................................7 3.2. 日志追加方式: .......................................................................................................7 4) 虚拟内存(适用于value比key大的情况) ...............................................................8 4.1. Redis虚拟内存简介................................................................................................8 4.2. Redis虚拟内存相关配置........................................................................................8 4.3. redis虚拟内存工作方式简介................................................................................9 4.3.1. 当vm-max-threads设为0时(阻塞方式) .................................................9 4.3.2. 当vm-max-threads大于0时(工作线程方式).............................................9 5) 主从同步...........................................................................................................................9 5.1. Redis主从复制简介
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值