Redis系列四、redis的五种数据结构和相关指令之List

本节中将介绍Redis支持的主要数据结构,以及相关的常用Redis命令。redis是一种基于键值对(key-value)的内存数据库,redis数据结构可以分为string、hash、list、set、sorted set。

redis的五种数据结构和相关指令之List

列表list

Redis的List是链表型的数据结构,用来存储多个有序的字符串,一个列表最多可存2的32次方减1个元素,可以使用LPUSH/RPUSH/LPOP/RPOP等命令在List的两端执行插入元素和弹出元素的操作。虽然List也支持在特定index上插入和读取元素的功能,但其时间复杂度较高(O(N)),应小心使用。

a、常用命令

添加命令:

rpush james a b c //从右向左插入cba, 返回值3
lrange james 0 -1 //从左到右获取列表所有元素 返回 c b a
lpush key 11 22 33 //从左向右插入11 22 33
linsert james before b test //在b之前插入test, after为之后,
如果有相同的元素,以从左到右第一个为准,使用lrange james 0 -1 查看,如下图

查找命令:

lrange key start end //索引下标特点:从左到右为0到N-1
lindex key -1 //返回最右末尾a,-2返回b
llen key    //返回当前列表长度

删除命令

lpop key   //把最左边的第一个元素c删除
rpop key   //把最右边的元素a删除

lrem key count value//删除指定元素
lrem test 4 b  //从左右开始删除b的元素,删除4个,若不够4个则删除已有的

ltrim key start end
ltrim name 1 3 //只保留从第2到第4(下标从0开始)的元素,其它全删


修改

lset key index value
lset name 2 java // 把第3个元素z替换成java

应用场景

每个用户有多个订单key为 order:1 order:2 order:3, 结合hmset

hmset order:1 orderId 1 money 36.6 time 2018-01-01 
hmset order:2 orderId 2 money 38.6 time 2018-01-01 
hmset order:3 orderId 3 money 39.6 time 2018-01-01 

把订单信息的key放到队列

lpush user:1:order order:1 order:2 order:3

每新产生一个订单,

hmset order:4 orderId 4 money 40.6 time 2018-01-01 

追加一个order:4放入队列第一个位置

lpush user:1:order order:4

当需要查询用户订单记录时:

    List orderKeys = lrange user:1 0 -1 //查询user:1 的所有订单key值
    for(Order order: orderKeys){
       hmget order:1
    }


————————————————
版权声明:本文为CSDN博主「lingengy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/w1lgy/article/details/84376925

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值