Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)
一、string类型及基本操作(字符)
string 是 redis 最基本的类型,最大上限是1G 字节。你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
set
设置key 对应的值为string 类型的value。
127.0.0.1:6379> set name wh_k
OK
setnx
设置key 对应的值为string 类型的value。如果key 已经存在,返回0,nx 是not exist 的意思。
127.0.0.1:6379> setnx name wh_kgg
(integer) 0
setex
设置key 对应的值为string 类型的value,并指定此键值对应的有效期。例如我们添加一个whk= good 的键值对,并指定它的有效期是10 秒
127.0.0.1:6379> setex whk 10 good
OK
127.0.0.1:6379> get whk
"good"
127.0.0.1:6379> get whk
(nil)
setrange
设置指定key 的value 值的子字符串。例如我们希望替换name某部分字符:
127.0.0.1:6379> set name whk@qq.com
OK
127.0.0.1:6379> get name
"whk@qq.com"
127.0.0.1:6379> setrange name 4 126.com
(integer) 11
127.0.0.1:6379> get name
"whk@126.com"
其中4是指从下标为4(包含4)的字符开始替换,下标从0开始。
mset
一次设置多个key 的值,成功返回ok 表示所有的值都设置了,失败返回0 表示没有任何值被设置。
127.0.0.1:6379> mset num1 12 num2 34 num3 56
OK
msetnx
一次设置多个key 的值,成功返回ok 表示所有的值都设置了,失败返回0 表示没有任何值被设置,但是不会覆盖已经存在的key。
127.0.0.1:6379> msetnx num3 55 num4 78
(integer) 0
127.0.0.1:6379> get num4
(nil)
127.0.0.1:6379> get num3
"56"
get
获取key 对应的string 值,如果key 不存在返回nil
127.0.0.1:6379> get name
"whk@126.com"
127.0.0.1:6379> get name1
(nil)
getset
设置key 的值,并返回key 的旧值。
127.0.0.1:6379> get name
"whk@126.com"
127.0.0.1:6379> getset name whk@qq.com
"whk@126.com"
127.0.0.1:6379> get name
"whk@qq.com"
getrange
获取指定key 的value 值的子字符串,左下标从0开始,右下标从-1开始,当下标超出字符串长度时,将默认为是同方向的最大下标。
127.0.0.1:6379> get name
"whk@qq.com"
127.0.0.1:6379> getrange name 0 4
"whk@q"
127.0.0.1:6379> getrange name -1 -5
""
127.0.0.1:6379> getrange name -5 -1
"q.com"
mget
一次获取多个key 的值,如果对应key 不存在,则对应返回nil。
127.0.0.1:6379> mget num1 num2 num3 num4 num5
1) "12"
2) "34"
3) "56"
4) (nil)
5) (nil)
incr
将 key 中储存的数字值增一。
127.0.0.1:6379> get age
"10"
127.0.0.1:6379> incr age
(integer) 11
127.0.0.1:6379> get age
"11"
ncrby
加指定值 ,key 不存在时候会设置key,并认为原来的value 是 0
127.0.0.1:6379> get age
"11"
127.0.0.1:6379> incrby age 5
(integer) 16
127.0.0.1:6379> get age
"16"
127.0.0.1:6379> incrby age1 5
(integer) 5
127.0.0.1:6379> get age1
"5"
decr
对key 的值做的是减一操作,decr 一个不存在key,则设置key 为-1
127.0.0.1:6379> get age1
"5"
127.0.0.1:6379> decr age1
(integer) 4
127.0.0.1:6379> get age1
"4"
decrby
同decr,减指定值,可为负值。
127.0.0.1:6379> get age1
"4"
127.0.0.1:6379> decrby age1 4
(integer) 0
127.0.0.1:6379> get age1
"0"
127.0.0.1:6379> decrby age1 4
(integer) -4
127.0.0.1:6379> get age1
"-4"
append
给指定key 的字符串值追加value,返回新字符串值的长度。
127.0.0.1:6379> get name
"whk@qq.com"
127.0.0.1:6379> append name .china
(integer) 16
127.0.0.1:6379> get name