string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M.
| key | value |
|---|---|
| username | 张三 |
设置/获取单个key-value
如果key已经存在,则覆盖
127.0.0.1:6379> set key value OK 127.0.0.1:6379> get key "value"2. mset/mget
设置/获取多个key-value
如果key已经存在,则覆盖
127.0.0.1:6379> mset k1 v1 k2 v2 OK 127.0.0.1:6379> mget k1 k2 1) "v1" 2) "v2"3. setnx/msetnx
设置单个key-value如果key已经存在,则失败
设置/获取多个key-value,如果有一个key已经存在,则整体失败
127.0.0.1:6379> setnx k1 v1 (integer) 0 127.0.0.1:6379> get k1 "v1" 127.0.0.1:6379> setnx k2 v2 (integer) 1 127.0.0.1:6379> get k2 "v2" 127.0.0.1:6379> msetnx k1 v1 k2 v2 (integer) 0 127.0.0.1:6379> get k1 (nil) 127.0.0.1:6379> get k2 "v5"4. setex/psetex
设置key时附加过期时间
setex是秒,psetex是毫秒
127.0.0.1:6379> setex k1 1000 v1 OK 127.0.0.1:6379> get k1 "v1" 127.0.0.1:6379> ttl k1 #获取key的失效时间(秒) (integer) 992 127.0.0.1:6379> psetex k1 100000 v1 OK 127.0.0.1:6379> get k1 "v1" 127.0.0.1:6379> pttl k1 #获取key的失效时间(毫秒) (integer) 9985555. getset/getdel
先获取value再设置key
先获取value再删除
#获取时k1不存在 127.0.0.1:6379> getset k1 v1 (nil) #获取时k1存在 127.0.0.1:6379> getset k1 v3 "v1" 127.0.0.1:6379> get k1 "v3" 127.0.0.1:6379> SET mykey "Hello" "OK" 127.0.0.1:6379> GETDEL mykey "Hello" 127.0.0.1:6379> GET mykey (nil)6.getex
获取key的值并可设置过期时间
可选项:
- ex 设置指定的过期时间,以秒为单位。
- px 设置指定的过期时间,以毫秒为单位。
- exat 设置密钥过期的指定 Unix 时间,以秒为单位。
- pxat 设置密钥过期的指定 Unix 时间,以毫秒为单位。
- persist 删除该key的过期时间。
127.0.0.1:6379> SET mykey "Hello" "OK" 127.0.0.1:6379> GETEX mykey "Hello" 127.0.0.1:6379> TTL mykey (integer) -1 127.0.0.1:6379> GETEX mykey EX 60 "Hello" 127.0.0.1:6379> TTL mykey (integer) 60二. 自增、自减 1.incr
字符串自增1,key不存在则会先设置一个值为0的key再进行自增1
127.0.0.1:6379> incr key (integer) 12.incrby
字符串自增指定值,不是整数会报错,负数则会自减,key不存在则会先设置一个值为0的key再自增
127.0.0.1:6379> incrby key 2 (integer) 23.decr
字符串自减1,key不存在则会先设置一个值为0的key再进行自减1
127.0.0.1:6379> decr key (integer) -14.decrby
字符串自减指定值,不是整数会报错,正数则会自增,key不存在则会先设置一个值为0的key再自减
127.0.0.1:6379> decrby key 2 (integer) -25.incrybyfloat
字符串自增指定值,不是数字会报错,负数则会自减,key不存在则会先设置一个值为0的key再自增
127.0.0.1:6379> incrybyfloat key 2.2 (integer) -2三.其他 1. strlen
获取字符串长度
127.0.0.1:6379> strlen k1 (integer) 62 getrange/setrange
范围获取和/范围设置
获取 key 中字符串值从 start 开始 到 end 结束 的子字符串,包括 start 和 end, 负数表示从字符串的末尾开始, -1 表示最后一个字符,负下标表示自右向左.
在指定下标设置值,如果指定下标超过字符串最大下标则用0补充
127.0.0.1:6379> set k1 01234 OK 127.0.0.1:6379> getrange k1 0 3 "0123" 127.0.0.1:6379> setrange k1 3 22 (integer) 6 127.0.0.1:6379> get k1 "012422"3.append
追加字符串,如果key不存在则直接创建key,然后将追加的值当该key的值
##如果key不存在,则创建,并返回key的长度 127.0.0.1:6379> append k1 hello (integer) 5 127.0.0.1:6379> get k1 "hello" ##如果key存在,则附加,并返回key的长度 127.0.0.1:6379> append k1 hello (integer) 10 127.0.0.1:6379> get k1 "hellohello"4.lcs
匹配两个key相同的字
127.0.0.1:6379> SET k1 "Hello" "OK" 127.0.0.1:6379> SET k2 "llo" "OK" 127.0.0.1:6379> lcs k1 k2 "llo"5.substr
和getrange一样,在2.00被弃用。



