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

浙公网安备 33010602011771号