从昨天到今天(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
写了三四个小时,边练习边整理笔记确实是个体力活。









网友评论