目录
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