Redis——string类型相关指令

添加键值对

sql 复制代码
SET [key] [value] [EX seconds|PX milliseconds] [NX|XX] //添加一个键值对

SETNX [key] [value] //set+NX的组合命令,不支持EX/PX选项

SETEX [key] [value] //set+EX的组合命令,不支持NX/XX选项

PSETEX [key] [value] //set+PX的组合命令,不支持NX/XX选项

mset [key1 value1 key2 value2... ...] //添加多个键值对

//EX/PX表示设置过期时间
//NX表示不存在就设置,XX表示存在才设置

获取键值对应的Value

sql 复制代码
get [key] //获取单个键值对

mget [key1 key2... ...] //获取多个键值对

对Value进行增减

sql 复制代码
incr/decr [key] //把key对应的value当整形加/减1,如果不存在就新建,默认新建的value是'0'

incrby/decrby [key] [n] //把key对应的value当整形加或减n ,如果不存在就新建,默认新建的value是'0'


incrbyfloat [key] [n] //上述命令都不能加减小数, 但incrbyfloat可以进行小数运算

拼接字符串

sql 复制代码
append [key] [value] //如果存在就追加,不存在就新建,返回追加后的总长度

获取子串

sql 复制代码
getrange [key] [start] [end]//获取一个value的子串。start和end是闭区间。下标从0开始。如果start/end是负数就表示倒数第几个元素。

//需要注意的是我们指明的是字节范围而不是字符范围,redis中没有字符概念,所以如果是中文的话要小心乱码,因为每个中文3个字节,截取出一半就不知道是什么了

替换子串

sql 复制代码
setrange [key] [offset] [value] //从key对应的字符串中下标为offset的位置开始,将value覆盖进去。下标从0开始算

//如果value的长度超过了被替换字符串的剩余长度就会自动延长被替换的字符串

//如果要替换的键值对根本不存在,或者说offset超出了被替换字符串的下标范围,就会用创建新的键值对或者用0x00补齐中间缺失的字节。在--raw模式下可能显示不出来0x00,但是实际上是填充了的

//与getrange相同,setrang也是以字节为单位确定下标的,所以要注意中文的时候出现乱码

求字符串长度

sql 复制代码
strlen [key]

后记

String的长度是有限制的,一般不超过512M

添加键值对等操作时,不用把字符串用引号包起来,但是包起来也没错

相关推荐
MC皮蛋侠客2 小时前
Redis 系列(七):事务、Pipeline 与 Lua 脚本——从原子性到 Functions
数据库·redis·lua
MC皮蛋侠客2 小时前
Redis 系列(八):缓存设计模式与一致性——从 Cache Aside 到防雪崩
redis·缓存·设计模式
渣渣盟2 小时前
当 Redis 写入不再是瓶颈后,Flink 任务的反压可能来自哪里?如何系统性地定位和解决 Flink 反压问题?
数据库·redis·flink
仍然.2 小时前
服务端高并发分布式结构演进之路
大数据·数据库·redis
MC皮蛋侠客3 小时前
Redis 系列(三):底层实现(一)——对象系统、SDS 与 dict
数据库·redis·缓存
渣渣盟3 小时前
当 Redis 集群发生主从切换(Failover)时,Flink 任务会崩溃吗?如何利用 Sentinel 实现高可用?
redis·flink·sentinel
海上小飞龙18 小时前
Redis 分布式锁原理:从 SET NX EX 到 Redisson 看门狗
数据库·redis·分布式
万物皆字节21 小时前
【避坑】使用CacheEvict需要注意的坑
redis
范什么特西2 天前
回答知识总结04(redis)
数据库·redis·缓存
higherzjm2 天前
如何通过Linux命令自动切割nginx和redis日志
linux·redis·nginx