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
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值