Redis 数据类型

Redis五种数据类型及其对应的Java数据类型:


String -- String
List -- LinkList
Hash -- HashMap
Set -- HashSet
sorted-set -- TreeSet

 

String基础命令


添加/修改数据
set key value

获取数据
get key

删除数据
del key

添加/修改多个数据
mset key1 xxx key2 xxx …
1
获取多个数据
mget key1 key2 …

获取数据字符个数(字符串长度)
strlen key

追加信息到原始信息后部(如果原始信息存在就追加,否则新建)
append key value

设置数值数据增加指定范围的值
incr key //自增1
incrby key increment //增加指定数值
incrbyfloat key increment //增加一个浮点数


decr key //自减1
decrby key increment //减少指定数值

String业务场景

全局自增ID,计数器,利用string的自增自减 incr key decr key。
分布式锁,setnx。
一个账号同时只能登陆一次,setnx。
验证码,expire 随机生成字符一分钟过期。

 

 

List基础操作


添加/修改数据
lpush key value1 [value2] …
rpush key value1 [value2] …


获取数据
lrange key start stop //获取从左数第start到stop个元素,从0开始
lindex key index //查询第i个元素
llen key //list的长度


获取并移除数据
lpop key //获取并删除左边第一个元素
rpop key //获取并删除右边第一个元素


移除指定数据
lrem key count value //count为移除的数量,value为移除哪个值

List业务场景

 

redis中的List本质是一个linklist,双向列表。
list:可做点赞记录存储,可做关注列表展示,可做最近粉丝关注列表,好友列表,模拟消息队列 push和pop

 

 

set基础命令

添加数据
sadd key value1 [value2]

获取全部数据
smembers key

删除数据
srem key value1 [value2]

获取集合数据总量
scard key

判断集合中是否包含指定数据
sismember key value2


获取两集合交集
sinter key1 key2

获取两集合并集
sunion key1 key2


获取两集合差集
sdiff key1 key2

获取集合随机元素
srandmember key [number] number可选择获取几位元素,不写默认1位


将指定数据从原始集合移动到目标集合中
smove source destination value

 

set业务场景

白名单,
感兴趣的人(xxx), sunion
随机展示,srandmember
共同好友 sinter

set与hash存储结构完全相同,仅存储键,不存储值(nil),并且值式不允许重复的。也就是只有键没有值的hash

 

 

sorted_set基本操作


添加数据
zadd key score1 member1 [score2 member2]

获取全部数据
zrange key start stop [WITHSCORES]//按照从小到大的顺序,加上WITHSCORES,就会带上scores一起显示
zrevrange key start stop [WITHSCORES]//按照从大到小的顺序

删除数据
zrem key member [member …]

按条件获取数据
查询scores在某个范围内的值
zrangebyscore key min max [WITHSCORES] [LIMIT]
查询key某个索引范围内的值
zrevrangebyscore key max min [WITHSCORES]


条件删除
zremrangebyrank key start stop
zremrangebyscore key min max

 

zcard key 获取总量
zcount key min max 获取某一个范围的总量

集合交、并存储操作
zinterstore destination numkeys key [key …] 求和
zunionstore destination numkeys key [key …]

sorted_set业务场景


各类排行榜,活跃度,亲密度

Hash基础命令

添加/修改数据
hset key field value

获取数据
hget key field
hgetall key

删除数据
hdel key field1 [field2]

添加/修改多个数据
hmset key field1 value1 field2 calue2

获取多个数据
hmget key field1 field2 …

获取哈希表中字段的数量
hlen key

获取哈希表中是否存在指定的字段
hexists key field

获取哈希表中所有的字段名和字段值
hkeys key //字段名
hvals key //字段值

设置指定字段的数值数据增加指定范围的值
hincrby key field increment //指定数值增长指定的数
hincrbyfloat key field increment

 

Hash业务场景

购物车,某家商店优惠券抢购,存储用户相关信息。优化用户信息的获取

 

参考文献:

https://blog.csdn.net/zzu_seu/article/details/106323114?ops_request_misc

https://www.cnblogs.com/pangzizhe/p/10657801.html

 
posted @ 2021-07-01 14:35  爵士灬  阅读(65)  评论(0)    收藏  举报