redis中string字符串类型常用命令
redis中string字符串类型常用命令
String是Redis最基本的类型,一个key对应一个value,一个Redis中字符串value最多可以是512M
String类型是二进制安全的,意味着Redis的string可以包含任何数据,比如jpg图片或者序列化的对象
下面介绍一些String类型的常用命令
- 添加键值对(当添加的key在数据库已经存在,会把已经存在的key覆盖):set key value,eg:
127.0.0.1:6379> set key1 value1
OK
127.0.0.1:6379> set key1 newValue1
OK
# 获取键值
127.0.0.1:6379> get key1
"newValue1"
- 添加键值对(只有当添加的key在数据库不存在时才添加):setnx key value,eg:
127.0.0.1:6379> get key1
"newValue1"
127.0.0.1:6379> setnx key1 newValue1-nx
(integer) 0
127.0.0.1:6379> get key1
"newValue1"
- 追加字符:append key value,eg:
127.0.0.1:6379> get key1
"newValue1"
# 返回结果是当前key对应的value长度
127.0.0.1:6379> append key1 -1
(integer) 11
127.0.0.1:6379> get key1
"newValue1-1"
- 获取key长度:strlen key,eg:
127.0.0.1:6379> get key1
"newValue1-1"
127.0.0.1:6379> strlen key1
(integer) 11
- key对应的value自增1(当value不是数字类型时会报错):incr key,eg:
127.0.0.1:6379> set key5 5
OK
127.0.0.1:6379> incr key5
(integer) 6
127.0.0.1:6379> get key5
"6"
127.0.0.1:6379> get key1
"newValue1"
127.0.0.1:6379> incr key1
(error) ERR value is not an integer or out of range
- key对应的value自减1(当value不是数字类型时会报错):decr key,eg:
127.0.0.1:6379> get key5
"6"
127.0.0.1:6379> decr key5
(integer) 5
127.0.0.1:6379> get key5
"5"
127.0.0.1:6379> get key1
"newValue1"
127.0.0.1:6379> decr key1
(error) ERR value is not an integer or out of range
- key对应的value增|减指定数值(只对类型为数字的value生效,当value不是数字类型时会报错):incrby|decrby key,eg:
127.0.0.1:6379> get key5
"5"
127.0.0.1:6379> incrby key5 7
(integer) 12
127.0.0.1:6379> get key5
"12"
127.0.0.1:6379> decrby key5 7
(integer) 5
127.0.0.1:6379> get key5
"5"
127.0.0.1:6379> get key1
"newValue1"
127.0.0.1:6379> incrby key1
(error) ERR wrong number of arguments for 'incrby' command
127.0.0.1:6379> decrby key1
(error) ERR wrong number of arguments for 'decrby' command
- 同时设置多个键值对(如果key存在则覆盖):mset key1 value1 key2 value2......,eg:
127.0.0.1:6379> mset key8 value8 key9 value9
OK
- 同时获取多个key对应的value:mget key1 key2 key3......,eg:
127.0.0.1:6379> mget key8 key9
1) "value8"
2) "value9"
- 同时设置多个键值对(如果key存在则失败,注意,是全部失败):msetnx key1 value1 key2 value2......,eg:
127.0.0.1:6379> msetnx key10 value10 key11 value11
(integer) 1
127.0.0.1:6379> mget key10 key11
1) "value10"
2) "value11"
127.0.0.1:6379> msetnx key10 value10-nx key11 value11-nx
(integer) 0
127.0.0.1:6379> mget key10 key11
1) "value10"
2) "value11"
- 获取value指定范围值(从0开始):getrange key 起始位置 结束位置,eg:
127.0.0.1:6379> set key12 value12
OK
127.0.0.1:6379> getrange key12 0 3
"valu"
# -1表示最后一个字符的位置
127.0.0.1:6379> getrange key12 0 -1
"value12"
- 从指定位置开始替换value:setrange key 起始位置 value,eg:
127.0.0.1:6379> get key12
"value12"
127.0.0.1:6379> setrange key12 2 hello
(integer) 7
127.0.0.1:6379> get key12
"vahello"
- 设置键值对的同时指定过期时间:setex key 过期时间 value,eg:
127.0.0.1:6379> setex key13 7 value13
OK
- 获取key对应的value,同时设置新的value:getset key value,eg:
127.0.0.1:6379> get key12
"vaaae12"
127.0.0.1:6379> getset key12 newValue12
"vaaae12"
127.0.0.1:6379> get key12
"newValue12"
记得快乐