[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。这样就可以做工资排序等操作了。