0
点赞
收藏
分享

微信扫一扫

Redis中hash和list常用指令

祈澈菇凉 03-10 12:01 阅读 3

上一篇讲了redis中操作String的常用命令,这里简单介绍一下hash的

Hash

  • hset field value [field value...] 设置一个value为Hash的键值对 (返回设置成功的键值对数量)
  • hget key field 先定位查询那一个key,再去相应的key中找相应的字段
  • hexists key field (判断所查找的键值对是否存在 1表示存在 0表示不存在)
  • HDEL key field [field ... ] 删除键值对中Hash中的一个field或者多个field (返回值本次删除成功的个数)
  • HKEYS key 获取key对应hash中所有的field的值
  • HVALUES key 获取key对应hash中所有的value的值
  • HGETALL key 获取key对应hash的全部field和value
  • HMGET key field1 field2....类似于上一篇文章中讲到的hget 可以一次性查询多个field
  • HMSET emmmm这个东西吧 有但没必要 因为hset已经可以同时设置多个值了
  • HLEN key 获取key对应hash中元素的个数
  • HSETNX key field value 类似于setnx不存在的时候,才能设置成功,不存在则设置失败(普通set存在就会进行一个修改操作)
  • hincrby key field 这里hash的value可以是数字类型的 这里就是加减整数
  • hincrbyfloat key field 这里是加减小数

列表

列表在使用的过程中元素是允许重复的,并且支持负数做索引,因为列表支持头和尾的操作,所以也经常把列表当做,栈/队列来进行一个使用。

  • lindex key  index 获取索引处的值,但是并不会修改原列表的值
  • lrem key index 删除目标索引处的值,会修改原列表,并返回被删除的那个值
  • lpush key value [value...] 把一个或者多个元素从列表左边放入列表(头插) 多个元素进行插入时,按照顺序进行一个头插 比如插入1,2,3,4 插入操作完毕之后,4会在最前面.
  • LRANGE strat end 查看列表中索引 start到end的元素,同时也是双闭区间 同时要是下标违法了 Redis会尽可能的尝试获取到Redis中的元素,能获取多少获取多少,获取不到的就不获取而不会抛出异常 lrange这里的l不是left是list
  • LPUSHX key value[value...]  类似于上述的头插操作,如果key存在才会进行一个头查操作,key不存在就什么都不进行 x是exists
  • rpush / RPUSHX 和上述命令同理,只不过是对右边的元素进行一个插入(尾插)。
  • LPOP / RPOP key 从队列左边取出元素,也就是头删 / 从右边取出元素,也就是尾删 6.2版本以后这个操作新增加了一个参数, LPOP / RPOP key  conut  也就是取出count个个数
  • linsert key before/after pivot value 在pivot对应的值前或者后插入一个元素不是通过下标衡量的是通过具体的基准值来衡量的,要是值pivot存在多个的话以第一个数为准

  •  LREM key count value 其中count表示要删除的个数,value表示要删除的值

    count为正数 从左往右边找进行删除 count为负数时,从右往左找,count为0时 该元素全部删除 
  • LTRIM key start end  保留start和end之间的元素左右闭区间 其他元素就全部删了
  • lset key index value 根据下标来进行修改元素
  • blpop / brpop

    大白话来讲的话,就类似于阻塞队列,要是当一个线程对Redis进行一个元素取出的时候,要是此时Redis中没有元素,我此时就不会取到空值,而是等一会,等里面有元素了我在取走一个,但是也不会等的太久

列表内部的编码方式

举报

相关推荐

0 条评论