Redis初识第三期---String类型的方法和应用场景

发布于:2025-06-19 ⋅ 阅读:(10) ⋅ 点赞:(0)

Redis的String类型不会做任何的编码转换,也就是存什么就是什么。同时Redis的String类型限制了大小为512MB。

方法

1.set

语法:set key value [expiration  EX  seconds|PX  milisecond[NX|XX]

语法解释:EX:表示存活时间,单位是秒,PX也是表示存活时间,单位是毫秒。

NX:表示如果key不存在才设置,若存在,就不设置。

XX:Key存在时才设置,相当于更新value,不存在,返回nil。

注意:若key已经存在,重新设置后,原有的value的TTL会失活。

2.get

语法:get key

就是通过key来获取value,但是get只能获得类型为String类型的value,其他类型的会出错。

3.Mset和Mget

就是一次对多个键值对进行操作,一次网络传输就可以完成多组键值对操作,相比于set和get来通过多轮网络传输的方式来比较,减少了网络传输。但是注意一次不能设置太多,不然会造成阻塞。

4.setNX,setEX,PsetEX

setNX:不存在才设置,存在则会失效。

setEX:设置的同时指定存活时间,单位是秒。

PsetEX:和上一个功能一样,只不过单位换成了毫秒。(要先写时间,再写value)。

针对int时

1.incr

value+1,返回值为value加1的值,若key不存在,默认就为0.

2.incrBy

value+n,也是key不存在时默认wei0.

3.decr

value-1,key不存在,默认为0.

4.decrBy

value-n,key不存在也是默认为0.

执行这些操作时,value必须为整数,而且范围在long(64位)之间。

5.incrbyfloat

value+/-小数。

针对字符串

1.append

拼接,若key已存在value而且为String类型时,会拼接到原value后面,若不存在,相当于set方法。返回拼接后的长度。

2.getrange

相当于substring,获取指定长度的字符串,但是区间为闭区间,而且支持像python一样使用负数下标。

3.setrange

对字符串的子串进行修改。

语法:setrange key offset(从第几个开始)  value(替换的字符串)。返回值为替换后的总字符串长度。

4.strlen

获取字符串长度,单位是字节,value存放的必须是String类型,不然会报错。

String的内部编码

int == 8个字节。

embstr:<=39个字节(可以自己定义)

raw:>39个字节。

String的应用场景

 1.做为缓存

用户要从Redis中获取数据,若Redis中没有,则从MySQL中获取,同时将元素加入到Redis中。

当内存空间不足时,可以采用过期策略和淘汰策略。

2.计数功能

像视频播放,点赞之类的,可以使用String类型,比如:vedio:123:2000.。。。

当统计播放前100名之类的情况,需要异步写入统计数据库。

3.共享会话

 用于分布式系统上,让session会话单独拎出来到Redis中,每个服务器都访问Redis。

4.手机验证码

可以使用NX(没有才会设置)和EX(设置存活时间),将“手机号”和验证码存入Redis,然后判断就行了。


网站公告

今日签到

点亮在社区的每一天
去签到