操作命令
获取指定范围字符getrange hello 0 1
获取长度 strlen hello
字符串追加内容 append hello world
设置多个值 mset hello 123 world 345
获取多个值 mget hello world
设置值,如果key存在则不成功 setnx hello 333
加过期时间 单独expire加过期 set key value [expiration Ex seconds|PX milliseconds][NX|XX]
使用参数的方式 set k1 v1 EX 10 NX
整数值递增值不存在会得到1 incr hello incrby hello 100
整数值递减 decr hello decr hello 100
浮点数增量 set mf 2.6 / incrbyfloat mf 7.3
存储原理
数据模型HashTable
dictEntry包含key value和下一个指针
Simple Dynamic String简单动态字符串存储
int 存储8个字节长整型
embstr代表embstr格式的SDS,存储小于44个字节的字符串
raw存储大于44个字节的字符串
原因:C语言没有String类型,只能用char[]实现
embstr分配一次内存空间(为RedisObject和SDS分配空间是连续的),raw需要分配两次内存空间(分别为RedisObject和SDS分配空间)
应用场景
缓存,分布式锁,分布式数据共享,全局ID,计数器,限流