03.Redis数据类型操作命令与应用场景(上)

Redis通用命令

命令 说明
ping 检测redis服务状态,返回PONG表示服务正常
dbsize 返回当前数据库的key的数目
select db 切换到第几个数据库;Redis 默认使用 16 个库,从 0 到 15。 redis 默认自动使用 0 号库。
flushdb 删除当前数据库数据
exit或quit 客户端退出当前redis连接
keys pattern 查找所有符合模式 pattern 的 key。* 表示 0-多个字符;?表示单个字符,
exists key [key…] 判断 key 是否存在;返回值:整数,存在 key 返回 1,其他返回 0. 使用多个 key,返回存在的 key 的数量。
expire key seconds 设置 key 的生存时间,超过时间,key 自动删除。单位是秒。
ttl key 以秒为单位,返回 key 的剩余生存时间(ttl: time to live)
type key 查看 key 所存储值的数据类型
del key [key…] 删除存在的 key ,不存在的 key 忽略。

字符串类型(string)

命令 说明
set key value 存入字符串键值对
mset key value [key value …] 批量存储字符串键值对
setnx key value 存入一个不存在的字符串键值对
get key 获取一个字符串键值
mget key [key …] 批量获取字符串键值
del key [key …] 删除一个键
incr key 将key中储存的数字值加1
decr key 将key中储存的数字值减1
incrby key increment 将key所储存的值加上increment
decrby key decrement 将key所储存的值减去decrement
strlen key 返回 key 所储存的字符串值的长度
getrange key start end 获取 key 中字符串值从 start 开始 到 end 结束 的子字符串,包括 start 和 end
setrange key offset value 用 value 覆盖(替换)key 的存储的值从 offset 开始,不存在的 key 做空白字符串

应用场景

  • 单值缓存
    set key value
    get key

  • 对象缓存
    set user:1 value(json格式数据)
    //存储用户id为1的用户
    mset user:1:name zhangsan user:1:age 22
    mget user:1:name user:1:age

  • 分布式锁
    //setnx只能设置不存在的键, 能够设置成功表示获取锁
    setnx product:10001 true //返回1代表获取锁成功
    setnx product:10001 true //返回0代表获取锁失败
    delproduct:10001 //执行完业务释放锁
    set product:10001 true ex 10 nx //防止程序意外终止导致死锁

  • 计数器
    incr article:readcount:{文章id}
    get article:readcount:{文章id}

  • 分布式session
    spring session + redis实现session共享

哈希类型 hash

命令 说明
hset key field value 存储添加一个哈希表key的键值
hset key field value 存储添加一个哈希表key的键值
hsetnx key field value 存储添加一个不存在的哈希表key的键值
hmset key field value [field value …] 在一个哈希表key中存储多个键值对
hget key field 获取哈希表key对应的field键值
hmget key field [field …] 批量获取哈希表key中多个field键值
hdel key field [field …] 删除哈希表key中的field键值
hlen key 返回哈希表key中field的数量
hgetall key 返回哈希表key中所有的键值
hincrby key field increment 为哈希表key中field键的值加上增量increment
hkeys key 返回哈希表 key 中的所有 field 域
hvals key 返回哈希表 中所有域的值
hexists key field 查看哈希表 key 中,给定域 field 是否存在

应用场景

  • 对象缓存

在这里插入图片描述
hmset user 1:name zhangsan 1:age 20
hmget user 1:name 1:age

  • 电商购物车
    在这里插入图片描述

1)以用户id为key
2)商品id为field
3)商品数量为value

  • 购物车操作
    //用户id为1001 商品id为10088 value为商品数量
    添加商品:hset cart:1001 10088 1
    增加数量:hincrby cart:1001 10088 1
    商品总数:hlen cart:1001
    删除商品:hdel cart:1001 10088
    获取购物车所有商品:hgetall cart:1001

猜你喜欢

转载自blog.csdn.net/lglglglglgui/article/details/108715055