Redis 常用命令操作总结(二——List链表、set集合)

目录

1、List类型的操作

(1)获取列表:

(2)添加元素

(3)移除元素

(4)获取列表长度

(5)通过index获取数据

(6)截取列表

(7)删除尾元素添加到新列表里

(8)元素替换

(9)插入元素

2、set集合相关操作

(1)添加集合元素

(2)查看集合长度

(3)移除元素

(4)查看集合元素

(5)随机抽选出元素

(6)将集合里的元素移到另一个集合

(7)交集、差集、并集


1、List类型的操作

list实际上是一个链表。

队列(Lpush Rpop)、栈(Lpush Lpop)

(1)获取列表:

获取列表所有元素

lrange list 0 -1

获取部分元素

lrange list 0 2

区间为[0,2]闭区间

(2)添加元素

在第一个元素前添加:lpsuh

127.0.0.1:6379> lpush list one
(integer) 1
127.0.0.1:6379> lpush list two 
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"

在最后一个元素后添加:rpush

127.0.0.1:6379> lpush list one 
(integer) 1
127.0.0.1:6379> lpush list two
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> rpush list four
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
4) "four"

(3)移除元素

移除首元素:lpop 

移除末尾元素:rpop

127.0.0.1:6379> lpush list one 
(integer) 1
127.0.0.1:6379> lpush list two
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> lpop list
"three"
127.0.0.1:6379> rpop list
"one"

移除后都会返回移除的值。

通过数据值移除:lrem

lrem 列表名 删除数量 元素值

删除一条数据:

127.0.0.1:6379> lrange list 0 -1
1) "four"
2) "three"
3) "two"
4) "one"
127.0.0.1:6379> lrem list 1 three
(integer) 1
127.0.0.1:6379> lrange list 0 -1
1) "four"
2) "two"
3) "one"

删除多条数据:

127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "three"
3) "three"
4) "four"
5) "two"
6) "one"
127.0.0.1:6379> lrem list 2 three
(integer) 2
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "four"
3) "two"
4) "one"

返回删除的数量。

(4)获取列表长度

llen list

(5)通过index获取数据

lindex list 0

获取index=0的数据

(6)截取列表

127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "four"
3) "two"
4) "one"
127.0.0.1:6379> ltrim list 1 2
OK
127.0.0.1:6379> lrange list 0 -1
1) "four"
2) "two"

ltrim区间在[1,2],截取以后只剩下截取的元素。

(7)删除尾元素添加到新列表里

127.0.0.1:6379> rpoplpush list otherList
"four"
127.0.0.1:6379> lrange list 0 -1
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> lrange otherList 0 -1
1) "four"

(8)元素替换

127.0.0.1:6379> lrange list 0 0
1) "one"
127.0.0.1:6379> lset list 0 item
OK
127.0.0.1:6379> lrange list 0 0
1) "item"

若不存在会报错。

(9)插入元素

127.0.0.1:6379> lrange list 0 -1
1) "item"
2) "two"
3) "three"
127.0.0.1:6379> linsert list before two vlaue233
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "item"
2) "vlaue233"
3) "two"
4) "three"
127.0.0.1:6379> linsert list after two vlaueAfter
(integer) 5
127.0.0.1:6379> lrange list 0 -1
1) "item"
2) "vlaue233"
3) "two"
4) "vlaueAfter"
5) "three"

用法:

linsert 列表名 before|after 已存在元素 要插入的元素

从中间插入效率相对较低。

2、set集合相关操作

集合元素不能重复。

(1)添加集合元素

127.0.0.1:6379> sadd myset hello
(integer) 1
127.0.0.1:6379> sadd myset Jack
(integer) 1
127.0.0.1:6379> sadd myset 233
(integer) 1
127.0.0.1:6379> smembers myset
1) "Jack"
2) "233"
3) "hello"

语法:

sadd 集合名 集合元素

(2)查看集合长度

scard 集合名

(3)移除元素

127.0.0.1:6379> smembers myset
1) "Jack"
2) "233"
3) "hello"
127.0.0.1:6379> srem myset hello
(integer) 1
127.0.0.1:6379> smembers myset
1) "Jack"
2) "233"

语法:

srem 集合名 元素

(4)查看集合元素

smembers 集合名

(5)随机抽选出元素

127.0.0.1:6379> srandmember myset
"Jack"
127.0.0.1:6379> srandmember myset 2
1) "Jack"
2) "233"

语法:

srandmember 集合名
srandmember 集合名 数量

(6)将集合里的元素移到另一个集合

127.0.0.1:6379> smembers myset
1) "Jack"
2) "233"
127.0.0.1:6379> smove myset myset2 Jack
(integer) 1
127.0.0.1:6379> smembers myset2
1) "Jack"
127.0.0.1:6379> smembers myset
1) "233"

语法:

smove 要移动的集合 目标集合 要移动的元素

(7)交集、差集、并集

127.0.0.1:6379> smembers myset2
1) "f"
2) "e"
3) "d"
4) "g"
127.0.0.1:6379> smembers myset1
1) "c"
2) "b"
3) "d"
4) "a"
127.0.0.1:6379> sdiff myset1 myset2
1) "b"
2) "c"
3) "a"
127.0.0.1:6379> sinter myset1 myset2
1) "d"
127.0.0.1:6379> sunion myset1 myset2
1) "e"
2) "d"
3) "g"
4) "c"
5) "b"
6) "f"
7) "a"

交集:

sinter 集合1 集合2

差集:

sdiff 集合1 集合2

并集:

sunion 集合1 集合2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值