redis5 中类型操作应用场景

五种数据类型

String:字符串
Hash:面向对象的结构
List:双向链表
Set:集合
ZSet:有序集合
1.exits
exists判断一个key是否存在时,没有对key的value进行读取,只是
使用类似contain方法,但是get是将key的value读取过来的,redis
最新版本中可以支持value最大存储数据的1GB,exists判断效率更高
dump.rdb默认大小是77字节,保持了一个基本结构;
2.
flushdb
select 0-15整数:redis默认情况下,会在内存中划分16个数据库区
域,相互之间数据是隔离的,可以通过select 整数选择使用不同的
区域,默认的是0号库
127.0.0.1:6379[15]> select 1

flushdb:db指的就是0-15号分库,清空分库中内存数据,dump持久化文件不受影响(flushall>>flushdb)
很多环境中不确定要不要清除数据(flushall),又要实现数据的不冲突,就可以使用flushdb,如果清除错误,可以通过持久化文件恢复

2.2String的命令
○ set: 新增/覆盖(写) ○ get:获取读数据
○ incr/decr:自增自减 步数1
可以对string类型中纯数字的数据进行自增自减操作,步数1
127.0.0.1:6379> set num 100
OK
127.0.0.1:6379> incr num
(integer) 101
127.0.0.1:6379> decr num
(integer) 100
127.0.0.1:6379>
应用场景:一些程序中变动的数字,上下变动1,-1;投票软件工具
○ incrby/decrby:自增自减,步数自定义
127.0.0.1:6379> incrby num 10
(integer) 110
127.0.0.1:6379> decrby num 20
(integer) 90
127.0.0.1:6379>
应用场景:在线人数
○ append:追加,修改的一种
set可以修改数据,覆盖,将已有的数据重新覆盖写了一遍,追加性能
速度比覆盖高.
127.0.0.1:6379> set location beijing
OK
127.0.0.1:6379> append location yizhuang
(integer) 15
127.0.0.1:6379> get location
“beijingyizhuang”
127.0.0.1:6379>
○ mset/mget:批量操作,批量的新增,批量的获取
127.0.0.1:6379> mset name1 wang name2 liu name3 wu
OK
127.0.0.1:6379> keys *

  1. “name3”
  2. “name1”
  3. “name2”
    127.0.0.1:6379> mget name1 name2 name3 name4
  4. “wang”
  5. “liu”
    分区 day08-redis 的第 5 页
  6. “liu”
  7. “wu”
  8. (nil)
    127.0.0.1:6379>
    效果和多次执行set/get一样,但是速度远超单个设置,批量操作只
    占用带宽传输一次

2.4LIST
双向链表,特点,头尾操作速度快,中间的操作速度慢,有排序,分为上
(左)/下(右)
○ lpush/rpush list的key值 元素值
从头或者从尾插入数据
127.0.0.1:6379> lpush list01 100 200 300 400 500
(integer) 5
127.0.0.1:6379> rpush list01 one two three four five
(integer) 10
○ lrange list的key值 起始下标 结束下标(如果查看全部,0 -1)
127.0.0.1:6379> lrange list01 0 -1

  1. “500”
  2. “400”
  3. “300”
  4. “200”
  5. “100”
  6. “one”
  7. “two”
  8. “three”
  9. “four”
  10. “five”
    127.0.0.1:6379>
    ○ linsert
    LINSERT key BEFORE|AFTER pivot value
    对一个list数据做插入元素操作,只能从头从上向下对比数据,pivot
    参数元素,value插入的数据,before/after 在参数元素的前后进行数
    据写入
    127.0.0.1:6379> lrange list02 0 -1
  11. “three”
  12. “two”
  13. “one”
    127.0.0.1:6379> linsert list02 after one 100
    (integer) 4
    127.0.0.1:6379> linsert list02 before one 200
    (integer) 5
    127.0.0.1:6379>
    127.0.0.1:6379> lrange list02 0 -1
  14. “three”
  15. “two”
  16. “200”
  17. “one”
  18. “100”
    分区 day08-redis 的第 8 页
    ○ lrem 删除
    LREM key count value
    由于一个list链表中元素的值可以重复,删除元素时,需要携带删除
    的个数
    count=正整数,0,负整数
    正整数:从头想尾部寻找相同元素个数删除
    负整数:从尾到头部寻找相同元素个数删除
    0:全删
    127.0.0.1:6379> lrange list03 0 -1
  19. “200”
  20. “100”
  21. “200”
  22. “100”
  23. “200”
  24. “100”
    127.0.0.1:6379> lrem list03 2 100
    (integer) 2
    127.0.0.1:6379> lrange list03 0 -1
  25. “200”
  26. “200”
  27. “200”
  28. “100”
    127.0.0.1:6379> lpush list04 100 200 100 200 100 200
    (integer) 6
    127.0.0.1:6379> lrem list04 -2 100
    (integer) 2
    127.0.0.1:6379> lrange list04 0 -1
  29. “200”
  30. “100”
  31. “200”
  32. “200”
    127.0.0.1:6379> lrem list04 0 200
    (integer) 3
    127.0.0.1:6379> lrange list04 0 -1
  33. “100”
    127.0.0.1:6379>
    ○ ltrim
    保留一定范围内的元素值,其他都删除
    127.0.0.1:6379> lrange list01 0 -1
  34. “500”
  35. “400”
  36. “300”
  37. “200”
  38. “100”
  39. “one”
  40. “two”
  41. “three”
  42. “four”
  43. “five”
    127.0.0.1:6379> ltrim list01 0 4
    OK
    分区 day08-redis 的第 9 页
    OK
    127.0.0.1:6379> lrange list01 0 -1
  44. “500”
  45. “400”
  46. “300”
  47. “200”
  48. “100”
    127.0.0.1:6379>
    ○ lpop/rpop
    从头部删除一个元素,从尾部删除一个元素,并且将删除的数据返

    作用是取得list中头和尾的数据;
    127.0.0.1:6379> lrange list01 0 -1
  49. “500”
  50. “400”
  51. “300”
  52. “200”
  53. “100”
    127.0.0.1:6379> lpop list01
    “500”
    127.0.0.1:6379>
    ○ llen
    查看元素的个数(list长度)
    127.0.0.1:6379> lrange list01 0 -1
  54. “400”
  55. “300”
  56. “200”
  57. “100”
    127.0.0.1:6379> llen list01
    (integer) 4
    127.0.0.1:6379>
    ○ lset
    按照下标,修改元素的值
    127.0.0.1:6379> lrange list01 0 -1
  58. “400”
  59. “300”
  60. “200”
  61. “100”
    127.0.0.1:6379> lset list01 2 two
    OK
    127.0.0.1:6379> lrange list01 0 -1
  62. “400”
  63. “300”
  64. “two”
  65. “100”
    127.0.0.1:6379>
    两个list之间的操作(用来做消息队列确认机制) ○ rpoplpush
    从第一个list尾部删除元素,
    分区 day08-redis 的第 10 页
    从第一个list尾部删除元素,
    从第二个list头部插入元素
    127.0.0.1:6379> lrange list01 0 -1
  66. “400”
  67. “300”
  68. “two”
  69. “100”
    127.0.0.1:6379> lrange list02 0 -1
  70. “three”
  71. “two”
  72. “200”
  73. “one”
  74. “100”
    127.0.0.1:6379> rpoplpush list01 list02
    “100”
    127.0.0.1:6379> lrange list02 0 -1
  75. “100”
  76. “three”
  77. “two”
  78. “200”
  79. “one”
  80. “100”
    127.0.0.1:6379>

2.5set类型
没有排序,不允许元素重复,一个集合的数据结构
○ 向集合添加一些数据
sadd key 元素值
127.0.0.1:6379> sadd favor math english
(integer) 2
127.0.0.1:6379>
○ srem key member删除
127.0.0.1:6379> sadd favor history
(integer) 1
127.0.0.1:6379> srem favor mathv history
○ scard key 返回元素个数
127.0.0.1:6380> scard favor
(integer) 2
○ sismember key element判断元素是否在集合中
127.0.0.1:6380> sismember favor histroy
(integer) 0
分区 day08-redis 的第 11 页
(integer) 0
127.0.0.1:6380> sismember favor math
(integer) 1
127.0.0.1:6380>
○ srandmember key 随机抽取几个元素
127.0.0.1:6380> sismember favor math
(integer) 1
127.0.0.1:6380> srandmember favor 1

  1. “math”
    127.0.0.1:6380> srandmember favor 1
  2. “english”
    ○ smembers key获取所有元素
    127.0.0.1:6380> sadd favor english histry
    (integer) 2
    127.0.0.1:6380> smembers favor
  3. “english”
  4. “histry”
  5. “math”
    127.0.0.1:6380>
    集合间的操作
    ○ sinter set1 set2 交集
    127.0.0.1:6380> sadd favor1 english histroy math
    (integer) 3
    127.0.0.1:6380> sadd favor2 english math chinese
    (integer) 3
    127.0.0.1:6380> sinter favor1 favor2
  6. “english”
  7. “math”
    127.0.0.1:6380>
    ○ suinon set1 set2 并集
    127.0.0.1:6380> sunion favor1 favor2
  8. “english”
  9. “chinese”
  10. “histroy”
  11. “math”
    127.0.0.1:6380>
    ○ sdiff set1 set2 差集属于set1属于set2的元素为差集
    127.0.0.1:6380> sdiff favor1 favor2
  12. “histroy”
    127.0.0.1:6380> sdiff favor2 favor1
  13. “chinese”
    127.0.0.1:6380>
    2.6ZSet结构(sorted set)
    在集合的基础上绑定一个score作为排序的依据
    比较典型的使用场景是排行榜系统。例如视频网站需要对用户上
    传的视频做排行榜榜

单集合(集合内)
○ zadd key score memeber添加成员
127.0.0.1:6380> zadd result 10 xiaolaoshi
(integer) 1
127.0.0.1:6380> zadd result 20 wanglaoshi
(integer) 1
127.0.0.1:6380> zadd result 30 chenlaoshi
(integer) 1
127.0.0.1:6380>
○ zcard key计算成员个数同set
○ zscore key member获取某个成员的分数
127.0.0.1:6380> zadd result 30 chenlaoshi
(integer) 1
127.0.0.1:6380> zscore result chenlaoshi
“30”
127.0.0.1:6380> zadd result 40 chenlaoshi
(integer) 0
127.0.0.1:6380> zscore result chenlaoshi
“40”
127.0.0.1:6380>
计算成员的排名
○ zrank key member
127.0.0.1:6380> zrank result xiaolaoshi
(integer) 0
127.0.0.1:6380> zrank result wanglaoshi
(integer) 1
127.0.0.1:6380>
删除成员
○ zrem key member
127.0.0.1:6380> zrem result wanglaoshi
(integer) 1
127.0.0.1:6380> zrank result wanglaoshi
(nil)
127.0.0.1:6380>
○ 增加成员的分数
zincrby key increment member
127.0.0.1:6380> zincrby result 50 xiaolaoshi
“60”
分区 day08-redis 的第 13 页
“60”
127.0.0.1:6380>
返回指定排名范围的成员
○ zrange key start end
127.0.0.1:6380> zrange result 0 1

  1. “chenlaoshi”
  2. “xiaolaoshi”
    127.0.0.1:6380>
    返回指定分数范围的成员
    ○ zrangebysore key min max
    返回指定分数范围成员个数
    ○ zcount key min max
    删除指定排名内的升序元素
    ○ zremrangebyrank key start end
    127.0.0.1:6380> zremrangebyrank result 0 1
    (integer) 2
    127.0.0.1:6380> zrange result 0 1
    (empty list or set)
    127.0.0.1:6380>
    删除指定分数范围的成员
    ○ zremrangebyscore key min max
    2 集合间的操作
    zset数据中的所有交集并集的操作,是将结果输出到一个新的集合

    交集 zinterstore destination numkeys key
    destination:新的zset集合
    numkeys:求交集,并集的个数
    key:所有zset集合
    127.0.0.1:6380> zadd result1 10 xiao
    (integer) 1
    127.0.0.1:6380> zadd result1 20 wang
    (integer) 1
    127.0.0.1:6380> zadd result2 30 xiao
    (integer) 1
    127.0.0.1:6380> zadd result2 40 wa

127.0.0.1:6380> zadd result2 40 wang
(integer) 1
127.0.0.1:6380> zinterstore out1 2 result1 result2
(integer) 2
127.0.0.1:6380> zrange out1 0 -1 withscores

  1. “xiao”
  2. “40”
  3. “wang”
  4. “60”
    127.0.0.1:6380>
    并集 zunionstore destionation numkeys key
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
校园失物招领系统管理系统按照操作主体分为管理员和用户。管理员的功能包括字典管理、论坛管理、公告信息管理、失物招领管理、失物认领管理、寻物启示管理、寻物认领管理、用户管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 校园失物招领系统管理系统可以提高校园失物招领系统信息管理问题的解决效率,优化校园失物招领系统信息处理流程,保证校园失物招领系统信息数据的安全,它是一个非常可靠,非常安全的应用程序。 ,管理员权限操作的功能包括管理公告,管理校园失物招领系统信息,包括失物招领管理,培训管理,寻物启事管理,薪资管理等,可以管理公告。 失物招领管理界面,管理员在失物招领管理界面可以对界面显示,可以对失物招领信息的失物招领状态进行查看,可以添加新的失物招领信息等。寻物启事管理界面,管理员在寻物启事管理界面查看寻物启事种类信息,寻物启事描述信息,新增寻物启事信息等。公告管理界面,管理员在公告管理界面新增公告,可以删除公告。公告类型管理界面,管理员在公告类型管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值