[redis]类型场景string、hash、list、set、zset

一、String类型

1、简介:经典key-value集合

2、常用操作:

       DEL key           删除key

  SET key value 设置指定key的值

       GET key           获取指定 key 的值。

       SETEX key seconds value     设置一个key-value,并设置过期时间(秒为单位)

       INCR key          将key对应的value数值+1

       DECR key         将key对应的value数值-1  

3、例子:点击量、点赞量、访问量

 

二、Hash类型

1、简介:key -  { field-value }

2、常用操作:

      HDEL key field[field2] 删除key-field

      HSET key filed value  设置一个    

      HMSET key field1 value1 [field value2]   设置多个  

      HGET  key field  获取一个

      HMGET key field1[field2]  获取多个

      HKEYS key 获取所有field

      HVALS key 获取所有value(不会返回field,只会返回所有value)

      HLEN key  获取key中field数量

3、例子:客户查看自己的个人资料,例如客户id是key,客户个人资料,如性别是field,男或者女是value

 

三、List类型

1、简介:key- list(一个key下报错一个字符串列表)

2、常用操作

     BLPOP key1[key2] timeout 获取列表第一个元素,并直到超时结束

     BRPOP key1[key2] timeout 获取列表最后一个元素,并直到超时结束

     LLEN key   获取长度

     LPOP key   移除并返回第一个元素

     LPUSH key value1[value2] 将一个或多个值插入到列表头部 

     LSET key index value 设置某个索引下的值

     RPOP key 移除并返回列表最后一个元素

     RPUSH key value1[value2] 将一个或多个值插入到列表尾部

   

3、例子:消息队列,例如使用RPUSH向末尾添加数据,使用LPOP消费数据

 

四、Set集合

1、简介:key-集合(不含重复数据),是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

2、常用操作

      SADD key member1[member2]  向集合添加一个或多个成员

      SCARD key  获取集合的成员数

      SMEMBERS key  获取集合所有的成员

      SPOP 移除并返回一个随机元素

      SUNION key1 [key2] 返回并集

      SDIFF key1 [key2] 返回第一个集合与其他集合的差异

      SINTER key1[key2]返回集合的交集

3、例子:保存不同用户的例如兴趣,就可以找到这些用户的兴趣交集

4、如果要比较key等,会出现hashslot的报错,是因为不同的key根据不同的哈希,分配到不同的节点。

CROSSSLOT Keys in request don‘t hash to the same slot

可以通过hashTag来解决{},例如

SADD {key}1  value111

SADD {key}2  value222

SDIFF {key}1 {key}2

 

五、有序集合sorted set

1、简介:key-集合(去重,且每个元素都有分数,最终会按分数从小到大排序)

2、常用命令:

    ZADD key score1  member1 [score2 member2] 向一个有序集合添加一个或多个成员或更新成员分数

    ZCARD key 获取集合的成员数

    ZCOUNT key min max  获取这个分数区间的成员数

    ZSCORE key member  获取某个成员的分数值

    ZRANK key member 获取某个成员在这个有序集合中的排位

    ZRANGE key start stop [WITHSCORES] 返回某个分值之间的所有值(withscores会把分数也一起返回)

3、例子:创建一个工资有序集合salary,每个员工作为value,而工资作为score。这样就可以做工资排序等操作了。

 

posted @ 2021-04-27 11:23  SKeyC27  阅读(121)  评论(0编辑  收藏  举报