Redis中有五种数据类型,分别是 String,List,Set,Hash,ZSet。
String类型是以字节数组的形式存储的,且存入时与客户端的编码集有关
常用操作
字符操作
- set [key] [value] [EX seconds | PX milliseconds] [NX | XX]
向redis中设置一对key-value
EX seconds seconds秒后过期 | PX milliseconds milliseconds毫秒后过期
NX 表示不存在时设置(与SETNX相同) | XX 表示存在时设置
127.0.0.1:6379> set k1 test
OK
- get [key]
从redis中获取指定key的值
127.0.0.1:6379> get k1
"test"
- GETSET [key] [value]
获取key的值并设置新值value,如果key不存在返回nil
#k1不存在
127.0.0.1:6379> GET k1
(nil)
#k1不存在,返回nil
127.0.0.1:6379> GETSET k1 aaaaa
(nil)
#上面已经设置进去了,所以获取到k1
127.0.0.1:6379> GET k1
"aaaaa"
#返回旧值,且存入新值
127.0.0.1:6379> GETSET k1 test
"aaaaa"
127.0.0.1:6379> GET k1
"test"
- append [key] [value]
向指定的key的值拼接字符串value
127.0.0.1:6379> APPEND k1 aaa
(integer) 7
127.0.0.1:6379> GET k1
"testaaa"
- getrange [key] [start] [end]
取出指定key的值的start到end下标的字符串
127.0.0.1:6379> GETRANGE k1 3 5
"taa"
Redis对字节数组既维护了正向索引,也有一个反向索引。正向从0开始,从左向右;反向从-1开始,从右向左
#-1 表示倒数第一个元素下标
127.0.0.1:6379> getrange k1 2 -1
"staaa"
#-2 表示倒数第二个元素下标
127.0.0.1:6379> getrange k1 2 -2
"staa"
- setrange [key] [offset] [value]
将指定的key对应值offset位置开始的字符替换为value
127.0.0.1:6379> GET k1
"testaaa"
127.0.0.1:6379> SETRANGE k1 2 bb
(integer) 7
127.0.0.1:6379>