【攻克Redis】字符串类型

字符串

这里写图片描述

常用命令
#设置值
#ex seconds:为键设置秒级过期时间。
#px milliseconds:为键设置毫秒级过期时间。
#nx:键必须不存在,才可以设置成功,用于添加。
#xx:与nx相反,键必须存在,才可以设置成功,用于更新
set key value [ex seconds] [px milliseconds] [nx|xx]
#若键hello已存在,setnx失败,返回结果为0
setnx hello redis
#若键jedis已存在,set xx成功,用于更新
set hello jedis xx 

注意:setnx可以作为分布式锁的一种实现方案

#获取值
#若获取的键不存在,则返回nil(空)
get key
#批量设置值
mset key value [key value ...]
#批量获取值,有些键不存在,那么它的值为nil(空),结果是按照传入键的顺序返回
mget key [key ...]

注意:get和mget的区别如下:

这里写图片描述

这里写图片描述

#计数;incr命令用于对值做自增操作
#值不是整数,返回错误
#值是整数,返回自增后的结果
#键不存在,按照值为0自增,返回结果为1
incr key
#自减
decr key 
#自增指定数字
incrby key increment 
#自减指定数字
decrby key decrement 
#自增浮点数
incrbyfloat key incremen
内部编码
int:8个字节的长整型
embstr:小于等于39个字节的字符串
raw:大于39个字节的字符串
使用场景
  1. 缓存功能

  2. 计数(优化:防作弊、按照不同维度计数、数据持久化到底层数据源等)

  3. 共享session(保证redis是高可用和扩展性的,每次用户更新或者查询信息都直接从redis中集中获取)

  4. 限速

    伪代码如下:

    phoneNum = "138xxxxxxxx"; 
    key = "shortMsg:limit:" + phoneNum; 
    // SET key value EX 60 NX 
    //设置键的过期时间为60s,在键不存在的情况下设置;
    isExists = redis.set(key,1,"EX 60","NX"); 
    if(isExists != null || redis.incr(key) <=5){    
    // 通过 
    }else{
    // 限速 
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

女汉纸一枚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值