Redis系列四、redis的五种数据结构和相关指令之List
本節(jié)中將介紹Redis支持的主要數(shù)據(jù)結構,以及相關的常用Redis命令。redis是一種基于鍵值對(key-value)的內(nèi)存數(shù)據(jù)庫,redis數(shù)據(jù)結構可以分為string、hash、list、set、sorted set。
redis的五種數(shù)據(jù)結構和相關指令之List
列表list
Redis的List是鏈表型的數(shù)據(jù)結構,用來存儲多個有序的字符串,一個列表最多可存2的32次方減1個元素,可以使用LPUSH/RPUSH/LPOP/RPOP等命令在List的兩端執(zhí)行插入元素和彈出元素的操作。雖然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開始)的元素,其它全刪
修改
應用場景
每個用戶有多個訂單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每新產(chǎn)生一個訂單,
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」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權協(xié)議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/w1lgy/article/details/84376925
總結
以上是生活随笔為你收集整理的Redis系列四、redis的五种数据结构和相关指令之List的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 防止sql xxs注入,J
- 下一篇: 代码整洁之道--思维导图