Redis数据结构系列


从昨天到今天(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

写了三四个小时,边练习边整理笔记确实是个体力活。

你可能感兴趣的:(Redis数据结构系列)