Redis----字符串
字符串类型是Redis最基础的数据结构,其它几种数据结构都是在字符串类型基础上构建的。需要注意的是字符串值最大不能超过512MB
命令
1、添加值
set key value [ex seconds] [px milliseconds] [nx|xx]
ex seconds:为键设置秒级过期时间
px milliseconds:为键设置毫秒级过期时间
nx:键必须不存在,才可以设置成功,用于添加
xx:与nx相反,键必须存在,才可以设置成功,用于更新。
插入成功返回ok
2、获取值
get key
存在返回value
不存在返回nil(空)
3、批量设置值
mset k1 v1 k2 v2 k3 v3
成功返回ok
4、批量获取值
mget k1 k2 k3 k4
返回结果为:
"v1"
"v2"
"v3"
"v4"
如果其中一个不存在,则返回nil,如k2不存在返回结果为
"v1"
(nil)
" v3"
" v4"
批量操作命令可以提交效率,可以减少n次操作的网络开销,可以对比图3-1、3-2,可以看到批量操作减少了中间大部分的网络开销
图3-1 n次get/set操作 图3-2 mget/mset操作5、计数
incr key
incr用于计数操作,如每条文字的点赞次数、转发量等等
返回结果
如果值不是整数:则返回错误 (error)
值是整数:返回自增后的结果
键值不存在:新增一个键,值为0。然后执行incr操作返回1
其它命令
decr key 自减操作
incrby key number 自增指定的数字
decrby key number 自减指定的数字
incrbyfloat key number 自增浮点数
6、追加字符串
append key value 向字符串尾部追加值
7、字符串长度
strlen key 返回字符串的长度,一个中文占用3个字节
8、设置并且返回值
getset key value
getset和get一样会返回值,getset返回之前设置的值
getset和set一样会设置值
9、设置指定位置的字符
setrange key position value
10、获取部分字符串
getrange key start end
内部编码
Redis会根据当前值的类型和长度决定使用哪种内部编码,字符串的类型的内部编码有3种
int: 8个字节的长整形
embstr: 小于等于39个字节的字符串
raw: 大于39个字节的字符串。
上面的类型可以使用命令:object encoding key来进行显示变量类型