1.set
设置Key对应的值为string类型的value。
例如我来设置一个name = MoWenJian 的键值对,可以这样做:
[root@localhost src]# /usr/local/redis/src/redis-cli redis 127.0.0.1:6379> set name MoWenJian OK redis 127.0.0.1:6379> |
2.setnx
设置key 对应的值为string 类型的value。如果key 已经存在,返回0,nx 是not exist 的意思。
例如我们添加一个name= MoWenJian_New 的键值对,可以这样做:
redis 127.0.0.1:6379> get name "MoWenJian" redis 127.0.0.1:6379> setnx name MoWenJian_New (integer) 0 redis 127.0.0.1:6379> get name "MoWenJian_New" redis 127.0.0.1:6379> |
由于原来name 有一个对应的值,所以本次的修改不生效,且返回码是0。
3.setex
设置一个键对应的值,并对此键值对设置一个有效期。
例如:我们指定一个键值对 lampbrother = success,并且设置一个有效期为10秒,我们来这样做:
redis 127.0.0.1:6379> set lampbrother 10 success OK redis 127.0.0.1:6379> get lampbrother "success" redis 127.0.0.1:6379> get lampbrother (nil) redis 127.0.0.1:6379> |
由于第二次调用已经超过10秒,所以无法取到lampbrother的值了!!!
4.setrange
设置指定键的值的子字符串。
例如:我现在要把 jiege 的邮箱 lijie@ li-jie.me 改为 lijie@lampbrother.net
redis 127.0.0.1:6379> get jiege "lijie@li-jie.me" redis 127.0.0.1:6379> setrange jiege 6 lampbrother.net (integer) 21 redis 127.0.0.1:6379> get lampbrother "lijie@lampbrother.net" redis 127.0.0.1:6379> |
5.mset
同时设置多个键值对,成功返回ok表示所有键设置成功,失败则返回0表示所有键设置都不成功
例如:我们同时设置 李文凯 的多个爱好:
redis 127.0.0.1:6379> mset hobby1 smoke hobby2 beer hobby3 girl OK redis 127.0.0.1:6379> get hobby1 "smoke" redis 127.0.0.1:6379> get hobby3 "girl" redis 127.0.0.1:6379> |
6.msetnx
同时设置多个键值对,同样失败返回0表示所有键都没有设置成功,成功返回OK表示所有键都设置成功,但
不同于mset的是本方法不会设置已经存在的键值对!
redis 127.0.0.1:6379> get hobby1 "smoke" redis 127.0.0.1:6379> get hobby3 "girl" redis 127.0.0.1:6379> msetnx hobby1 chouyan hobby4 hejiu (integer) 0 redis 127.0.0.1:6379> get hobby4 (nil) redis 127.0.0.1:6379> get hobby3 "girl" |
可以看出如果这条命令返回0,那么里面操作都会回滚,都不会被执行。
7.get
获取某个键对应的值,如果不存在则返回 nil
redis 127.0.0.1:6379> get hobby4 (nil) redis 127.0.0.1:6379> get hobby3 "girl" |
如上例,hobby3存在,并且值为"girl",hobby4不存在,则返回 nil
8.getset
设置某一个键的值,并且返回该键的旧值,如果该键不存在,则返回 nil,然后再设置新的值
例如:
redis 127.0.0.1:6379> getset hobby4 football (nil) redis 127.0.0.1:6379> getset hobby3 basketball "girl" redis 127.0.0.1:6379> get hobby4 "football" redis 127.0.0.1:6379> get hobby3 "basketball" |
9.getrange
获取指定键的值的子字符串
例如:
redis 127.0.0.1:6379> getrange jiege 0 4 "lijie" redis 127.0.0.1:6379> getrange jiege -15 -1 "lampbrother.net" redis 127.0.0.1:6379> getrange jiege 0 100 "lijie@lampbrother.net" |
上例中, getrange jiege 0 4 表示获取 jiege 这个键的值的下标为 0~4 的所有字符
同样, getrange jiege -15 -1 表示获取 jiege 这个键的值的下标从后数第15个到最后一个的所有字符
而 getrange jiege 0 100 则表示全部输出 jiege 这个键的值的所有字符,因为最后一个字符的下标 小于 100,
当下标超出字符串长度时,将默认为是同方向的最大下标。
10.mget
一次性获取多个键的值,如果键不存在,则返回 nil
例如:
redis 127.0.0.1:6379> mget hobby1 hobby2 hobby5 1) "smoke" 2) "beer" 3) (nil) redis 127.0.0.1:6379> |
hobby5不存在,所以返回nil。
11.incr
对一个键的值做加加操作,并返回新的值,如果该键的值类型不是int类型,将会报错,如果该键不存在,则设置该键为1
例如:
redis 127.0.0.1:6379> set age 20 OK redis 127.0.0.1:6379> incr age (integer) 21 redis 127.0.0.1:6379> get age "21" redis 127.0.0.1:6379> get age1 (nil) redis 127.0.0.1:6379> incr age1 (integer) 1 redis 127.0.0.1:6379> get age1 "1" |
12.incrby
类似于incr,但是incrby可以指定增加的值
例如:
redis 127.0.0.1:6379> incrby age 5 (integer) 26 redis 127.0.0.1:6379> get age "26" redis 127.0.0.1:6379> incrby age -1 (integer) 25 redis 127.0.0.1:6379> get age "25" |
大家可以看到,5代表给age键增加5,而-1表示给age键减1,即正数为加,负数为减
13.decr
对某一个键做减减操作,同incr
例如:
redis 127.0.0.1:6379> set age 20 OK redis 127.0.0.1:6379> decr age (integer) 19 redis 127.0.0.1:6379> get age "19" redis 127.0.0.1:6379> get age1 (nil) redis 127.0.0.1:6379> decr age1 (integer) -1 redis 127.0.0.1:6379> get age1 "-1" |
14.decrby
同incrby,给某一键减去指定的值
redis 127.0.0.1:6379> decrby age 5 (integer) 14 redis 127.0.0.1:6379> get age "14" |
decrby 完全是为了可读性,我们完全可以通过incrby 一个负值来实现同样效果,反之一样。
15.append
给指定key 的字符串值追加value,返回新字符串值的长度。
例如:
redis 127.0.0.1:6379> set name lijie OK redis 127.0.0.1:6379> get name "lijie" redis 127.0.0.1:6379> append name @li-jie.me (integer) 15 redis 127.0.0.1:6379> get name "lijie@li-jie.me" |
16.strlen
取指定key 的value 值的长度。
例如:
redis 127.0.0.1:6379> get name "lijie@li-jie.me" redis 127.0.0.1:6379> strlen name (integer) 15 redis 127.0.0.1:6379> get age "20" redis 127.0.0.1:6379> strlen age (integer) 2 |