本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • Redis
  • Redis教程(三)——Redis列表、集合、哈希(Hash)设置教程

Redis教程(三)——Redis列表、集合、哈希(Hash)设置教程

发布:TangLu2018-9-1 15:18分类: Redis 标签: redis nosql

一、Redis Hash类型

哈希类型的数据适合存储对象,其数据结构有点像MySQL表中的一行数据,包含了多个字段。MySQL是一张表里存放了多个字段和值,而Redis的Hash类型就是一个key里存放了多个字段和值

设置Redis hash key语法:

#hset key field value
#hsetnx key field value
#hmset key field1 value1 field2 value2

#示例
hset tanglu age 30
hset tanglu sex male
hmset tanglu height 175 weight 70


获取Hash字段总数:

#hlen key
hlen tanglu  #显示结果为4,因为上面示例设置了age sex height weight一共4个字段


获取指定字段的值,get的时候必须写清楚表名和字段名:

hget key filed
hmget key field1 field2  #获取多个值


示例:

hget tanglu name
hmget tanglu height weight


获取所有字段的值:

hgetall key  #显示出该Hash类型的key下的所有字段和值
hkeys key  #仅显示该Hash类型的key下的所有字段
hvals key  #和上一步相反,显示的是具体的值


redishash.png

删除字段和值

hdel key field1 field2...


判断字段是否存在,返回1代表存在,0代表不存在

hexists key field  #一次只能跟一个字段



二、Redis list类型

list列表类型的数据一般用于消息队列(比如使用redis作为ES的消息队列,当发现ES没有日志进来的时候,可以先看redis消息队列中是否有数据),可以让一个key拥有多个value,且值可重复

lpush names tanglu
lpush names tom
lpush names jerry
lpush names tanglu  #故意定义了重复的value
lrange names 0 -1  #获取列表里的全部值,0和-1是起始和结束范围,后进入的key的值反而是在前面的
lrange names 0 1  #获取第一个和第二个值
lrem names 1 tanglu  #移除一个值为tanglu的列,这里将会按照序号移除。如果要移除所有的话,序号写0
lpop names  #按照后进先出的方式读取列表里的数据,可当做消息队列
rpop names  #先进先出
del names  #删除列表


三、Redis集合

分为了有序集合和无序集合,元素不可重复。无序集合可用于微博账号粉丝等场景,有序集合可用于排行榜。

sadd ages 25
sadd ages 30
sadd ages 32
sadd ages 25  #重复定义,会添加失败
smembers ages  #显示集合中的元素,由于是无序的,不用再指定序号
srem ages 25  #移除一个元素
sismember ages 30  #检查集合中有没有30这个元素


温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《Redis教程(三)——Redis列表、集合、哈希(Hash)设置教程
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-402.html  [生成短网址]

已有 0/985 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~