从昨天到今天(8.16-8.17)学习了Redis数据结构系列,在此做一个笔记记录一下。
1. 字符串
- 赋值
set num 4
#增加一个key=num,value=4的记录
显示结果:ok
- 取值
get num
#获取key=num的value
显示结果:4
- 删除(delete)
del num
#删除key=num的记录
显示结果:(integer)1
- 数值增减(increase/decrease)
incrby num 5
#把num的值加5
decrby num 1
#把num的值减1 - 扩展命令
append num 7
#在num后附加7(字符串累加,不作计算)
2. 哈希
- 赋值
hset user username eve0
#新增key=user,其中user.username=eve0
hset user age 18
#新增key=user,其中user.age=18
hmset user username eve0 age 18
#key=user,其中用户的username=eve0,age=18 - 取值
hget user username
取出user.username的值
显示结果:"eve0"
hmget user username age
获取user.username,user.age
显示结果:
1) "eve0"
2) "18"
hgetall user
获取user的所有属性
显示结果:
1) "username"
2) "eve0"
3) "age"
4) "18"
- 删除
hdel user username
#删除user的username属性
del user
删除key=user的记录 - 数值增减
hincrby user age 2
#将user.age的值加2
hincrby user age -2
#将user.age的值减2 - 扩展命令
hexists user username
#检查user的username属性是否存在(1存在,0不存在)
hlen user
#user的属性个数
hkeys user
#user的所有key
显示结果为:
1) "username"
2) "age"
hvals user
#user的所有value
显示结果为:
1) "eve0"
2) "18"
3. List
-
两端添加
lpush userlist eve0 apple
#从左侧向userlist新增俩元素eve0,apple
rpush userlist bana
#从右侧向userlist新增bana元素 -
查看列表
lrange userlist 0 -1
#查找从第0个到最后一个(-1表示从后往前第几个位置) -
两端弹出
lpop userlist
#弹出左侧第一个,userlist-size 减1
rpop userlist
#弹出右侧第一个,userlist-size 减1 -
获取列表元素个数
llen userlist
-
扩展命令
lpushx userlist cup
#向userlist中从左侧插入cup元素
rpushx userlist qiaqia
#向userlist中从右侧插入qiaqia元素
lrem mylist 1 a
#从前往后删除一个a
lrem mylist -1 a
#从后往前删除一个a
lrem mylist 0 a
#删除列表中所有的a
lset list 5 hello
#设置索引号为5的值为hello
linsert list before hello beijing
#列表中在hello前插入beijing元素
linsert list after hello world
#在列表中hello后插入world元素
rpoplpush list userlist
#将list的最右侧弹出的元素从左侧插入到userlist中
4. Set
- 添加元素
sadd myset a b c
#向myset中添加三个元素a b c - 获得集合中的元素
smembers myset
显示结果:
1) "c"
2) "a"
3) "b"
sismember myset a
#a是否是myset中的元素
- 删除元素
srem myset2 1 2
#删除key=myset2中的value=1,value=2的元素 - 集合中的差集运算
1.创建seta:sadd seta 1 2 3 4 5 6 7 a b c
2.创建setb:sadd setb a c
3.求差集:sdiff seta setb
显示结果:
1) "7"
2) "2"
3) "6"
4) "b"
5) "5"
6) "4"
7) "3"
8) "1"
- 集合中的交集运算
1.创建seta:sadd seta 5 6 7 a b c
2.创建setb:sadd setb a c
3.求交集:sinter seta setb
显示结果:
1) "c"
2) "a"
- 集合中的并集运算
1.创建seta:sadd seta 5 6 7 a b c
2.创建setb:sadd setb a c
3.求并集:sunion seta setb
显示结果:
1) "c"
2) "7"
3) "6"
4) "a"
5) "5"
6) "b"
- 其他操作
(1)scard myset
#myset中有几个value
(2)srandmember myset
#myset中随机一个value
(3)sdiffstore setc seta setb
#seta与setb差集存于setc中
(4)sinterstore setd seta setb
#seta与setb交集存于setd中
(5)sunionstore sete seta setb
#seta与setb并集存于sete中
5. Sorted-set
- 添加元素
zadd sortset 70 zs 80 ls 90 ww
#张三70,李四80,王五90 - 获得元素
zscore sortset zs
#查找张三的分数 - 删除元素
zrem sortset zs
#删除张三的分数
zremrangebyrank sortset -1 -1
#根据排名删除分数最后一个
zremrangebyscore sortset 0 70
#删除分数在0-70之间的元素 - 范围查询
zrange sortset 0 -1 (withscores)
#查找在sortset中所有的元素的名字(分数):默认排序:小->大
zrevrange sortset 0 1 (withscores)
#查找在sortset中第零个到第一个的元素的名字(分数):排序:大->小
zrangebyscore sortset 70 90 withscores limit 1 2
#查找分数在70到90之间的下标从第1个元素开始往后的2个元素 - 其他操作
(1)zcard sortset
#sortset中value的个数
(2)zcount sortset 90 90
#查找在90-90分之间的个数
(3)zincrby sortset 4 ls
将李四的分数加4
写了三四个小时,边练习边整理笔记确实是个体力活。
网友评论