Redis五种数据类型

文章目录

  • Redis五种数据类型
    • String数据类型
    • List 数据类型
    • Hash数据类型 (散列类型)
    • set数据类型(无序集合)
    • Sorted Set数据类型 (zset、有序集合)

Redis五种数据类型

String数据类型

  • String是redis最基本的类型,最大能存储512MB的数据
  • string类型是二进制安全的,既可以存储任务数据、比如数字、图片、序列化对象

追加建的值

redis-cli
exists name        #判断键是否存在,存在返回1,不存在返回0
append name yan    #这个键不存在,因此append命令返回当前长度
append name yun    #这个键存在,返回追加后的长度
set name tk        #set是覆盖
strlen name        #查看name建的字符长度

Redis五种数据类型_第1张图片

Redis五种数据类型_第2张图片

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A3XQBmAx-1665049567998)(F:\typorase\jpg\659.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IErMogFc-1665049567998)(F:\typorase\jpg\660.png)]

自加自减

set name 10         #设置name的值为10
incr name           #自加1
decr name           #自减1

Redis五种数据类型_第3张图片

Redis五种数据类型_第4张图片

decrby name 5       #减少指定的整数
incrby name 15      #增加指定的整数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j5qvurYx-1665049567998)(F:\typorase\jpg\663.png)]

GETSET

GETSET key value:获取key值并返回,同时给key设置新值
getset name yan       #获取name键的值并返回,同时给name键设置新值yan

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qFshRWA1-1665049567999)(F:\typorase\jpg\664.png)]

SETEX

setex key seconds value:设置指定key的过期时间为seconds
setex name 10 yun
ttl key      #查看剩余存活时间  -1代表长期,-2表示过期或者是不存在

Redis五种数据类型_第5张图片

SETNX key value:不存在键的话执行set操作,存在的话不执行

Redis五种数据类型_第6张图片

MGET

MGET key [key …]     #批量获取键值对,批量查看 
需要相同数据类型

Redis五种数据类型_第7张图片

MSET

MSET key value [key value …]:批量设置键-值对

Redis五种数据类型_第8张图片

List 数据类型

概述:列表的元素类型为string,按照插入顺序排序,在列表的头部或尾部添加元素

lpush list a b c d e      #创建该键及与其关联的List,之后在将参数中的values从左到右依次插入
rpush list1 a b c d       #右插入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kiq57E0z-1665049568000)(F:\typorase\jpg\669.png)]

lrange list 0 -1         #取链表中的全部元素,其中0表示第一个元素,-1表示最后一个元素 
从左侧依次插入

Redis五种数据类型_第9张图片

Redis五种数据类型_第10张图片

lindex list1 2     #获取索引值为2(头部的第三个元素)的元素值。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I9CFMOkJ-1665049568000)(F:\typorase\jpg\672.png)]

Hash数据类型 (散列类型)

  • hash用于存储对象。可以采用这样的命名方式(hash格式):对象类别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值。
    如:存储ID为2的汽车对象。

  • 如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间

  • 每一个Hash可以存储4294967295个键值对

hset hash name yan   #给键hash的键设置字段为name,值为yan。
hget hash name       #获取键值为hash,字段为name的值

Redis五种数据类型_第11张图片

 hlen hash          #获取hash键的字段数量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cbWoDH4r-1665049568001)(F:\typorase\jpg\674.png)]

hdel hash name1    #删除hash键的name1字段

Redis五种数据类型_第12张图片

hmset hash name yan name1 zi name3 yun    #一次性设置多个字段

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o7Mn28DK-1665049568001)(F:\typorase\jpg\676.png)]

hmget hash name name1 name3           #指定获取多个字段值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CaE3lJbA-1665049568001)(F:\typorase\jpg\677.png)]

Redis五种数据类型_第13张图片

hgetall hash   #所有字段及其值,从结果中可以看出,他们是逐对列出的

Redis五种数据类型_第14张图片

hkeys hash           #仅获取所有字段的名字

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vh3Sgbyr-1665049568002)(F:\typorase\jpg\680.png)]

hvals hash           # #仅获取所有字段的值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ea9IFQkf-1665049568002)(F:\typorase\jpg\681.png)]

set数据类型(无序集合)

无序集合,元素类型为string类型,元素具有唯一性, 不允许存在重复的成员。多个集合类型之间可以进行并集、交集和差集运算

应用范围:

  • 可以使用Redis的Set数据类型跟踪一些唯一性数据,比如访问某一博客的唯一IP地址信息。对于此场景,我们仅需在每次访问该博客时将访问者的IP存入Redis中,Set数据类型会自动保证IP地址的唯一性
  • 充分利用Set类型的服务端聚合操作方便、高效的特性,可以用于维护数据对象之间的关联关系。比如所有购买某–电子设备的客户ID被存储在一个指定的Set中,而购买另外一种电子产品的客户ID被存储在另外一个Set中,如果此时我们想获取有哪些客户同时购买了这两种商品时,Set的intersections 命令就可以充分发挥它的方便和效率的优势
sadd set a b c d      #插入数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lWrmBIbg-1665049568002)(F:\typorase\jpg\683.png)]

sismember set a        #判断a是否存在 存在返回1 不存在返回0

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8bXEipls-1665049568002)(F:\typorase\jpg\684.png)]

smembers set     #通过smembers命令查看插入的结果,从结果可以看出,输出的顺序和插入顺序无关

Redis五种数据类型_第15张图片

Sorted Set数据类型 (zset、有序集合)

  • 有序集合,元素类型为Sting,元素具有唯一性, 不能重复。
  • 每个元素都会关联–个double类型的分数score(表示权重),可以通过权重的大小排序,元素的score可以相同。

应用范围:

可以用于一个大型在线游戏的积分排行榜。每当玩家的分数发生变化时,可以执行ZADD命 令更新玩家的分数,此后再通过ZRANGE命令获取积分TOP10的用户信息。当然我们也可以利用ZRANK命令通过username来获取玩家的排行信息。最后我们将组合使用ZRANGE和ZRANK命令快速的获取和某个玩家积分相近的其他用户的信息

zadd zset 1 "yan" 2 "zi" 3 "yun"     #添加权重为1,2,3的数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mA6Xshc4-1665049568003)(F:\typorase\jpg\686.png)]

zrange zset 0 -1
zrange zset 0 -1 withscores     #WITHSCORES选 项表示返回的结果中包含每个成员及其分数,否则只返回成员

Redis五种数据类型_第16张图片

你可能感兴趣的:(Linux,IT,云,redis,数据库)