-
概述
string可能是最普遍的数据类型了,在redis中,字符串可以存储的值还是很多的,当然这要结合业务场景。字符串类型可以存储:简单字符串,复杂字符串(json/xml),数字,二进制(图片,视频),但是单个值不能超过512M。 -
set(添加一个键值对)
格式:set key value [ex seconds] [px milliseconds] [nx|xx]
ex seconds:设置秒级过期时间
px milliseconds 设置毫秒过期时间
nx|xx : nx(必须键不存在才可以设置成功),xx(和nx相反)
-
setex(添加一个有过期时间的键值对)
格式: setex key seconds value
-
setnx(添加一个不存在的键值对)
格式: setnx key value
注意:为什么要把这个命令单独出来,因为只有一个键不存在的情况下,setnx才可以执行成功,这个是在使用分布式锁的场景使用;当我们程序并发访问一个资源的时候,我们可以通过setnx设置是否成功,来控制并发(redis是单线程的,所以只有一个会setnx成功)。 -
get(获取对应键的值)
get key
-
mset(批量设置值)
格式: mset key value [key value …]
-mget(批量获取键值对)
格式:mget key [key …]
注意:鼓励使用批量操作,因为每次执行一个redis命令,实际时间=网络时间+执行命令时间,使用批量命令可以使多个命令只需要一次网络时间(redis每次能执行数万次读写,指的是执行命令次数,不包括网络时间)。 -
内部编码选择
字符串类型的数据结构有三种内部编码:int,embstr,raw
int: 8个字节的长整型
embstr: 小于等于39个字节的字符串
raw:大于39个字节的字符串
-
字符串使用场景
1.缓存功能(缓存记录信息,序列化为json; 缓存简单字符串)
a.如果从redis可以获取,那么直接返回
b.如果从redis获取不到,那么查询mysql ,再将查询结果放入redis,返回结果2.计数器
计算视频点击次数,视频播放次数,网页浏览次数等;因为redis是单线程的所以不会发生更新丢失的情况。
3.共享session
因为现在应用都是分布式的,一个服务部署了好几个节点,如果各自内存是独立的,用户session信息总是在登录的节点的内存中,不能共享内存,所有在负载的情况下,用户可能要多次登录
如果用户的session存放在统一的内存中就可以解决多次登录的问题,解决方案就是存放在redis中,每次去校验 用户是否登录
4.限速
比如用户在登录时或者注册的时候,是需要发送验证码,为了防止用户刷我们短信平台,我们可以进行限制,通过使用 key和用户手机号绑定,值设置用户访问次数,每访问一次+1
可以看到我们对一个电话号码映射了一个访问次数,这个key的过期时间是60s,也就是单个用户发短信一分钟次数的一个限制。
(三)redis常用命令之string
猜你喜欢
转载自blog.csdn.net/weixin_38312719/article/details/94958044
今日推荐
周排行