String类型
1.追加字符串与获取字符串长度:append 与 strlen
127.0.0.1:6379> set name liuqing
127.0.0.1:6379> append name "hello" #如果字符存在,就追加
(integer) 12
127.0.0.1:6379> strlen name
(integer) 12
127.0.0.1:6379> get name
"liuqinghello"
127.0.0.1:6379> append key1 "zhangshan" #如果字符不存在 ,就创建一个
(integer) 9
127.0.0.1:6379> keys *
1) "name"
2) "key1"
2.自增 与自减 :incr 与 decr
127.0.0.1:6379> set views 0
OK
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> incr views #加一
(integer) 1
127.0.0.1:6379> incr views #加一
(integer) 2
127.0.0.1:6379> get views #查看结果
"2"
127.0.0.1:6379> decr views #减少一
(integer) 1
127.0.0.1:6379> decr views #减少一
(integer) 0
127.0.0.1:6379> get views #查看结果
"0"
3.步长的自增与自减少 :incrby 与 decrby
127.0.0.1:6379> incrby views 10
(integer) 10
127.0.0.1:6379> incrby views 10
(integer) 20
127.0.0.1:6379> decrby views 10
(integer) 10
127.0.0.1:6379> decrby views 10
(integer) 0
4.替换与截取:setrange 与 getrange
127.0.0.1:6379> get name
"liuqinghello"
127.0.0.1:6379> getrange name 3 6
"qing"
127.0.0.1:6379> setrange name 7 ok
(integer) 12
127.0.0.1:6379> get name #将下标为7的字符替换为 ok了
"liuqingokllo"
5.setex 与 setnx
127.0.0.1:6379> setex key1 10 "hello" #设置过期时间
OK
127.0.0.1:6379> ttl key1 #查看剩余的时间
(integer) 4
127.0.0.1:6379> get key1 #过期后key1不存在
(nil)
127.0.0.1:6379> get key1
(nil)
127.0.0.1:6379> setnx mykey "redis" # 如果不存在则创建
(integer) 1
127.0.0.1:6379> keys * #创建一个key mykey
1) "views"
2) "name"
3) "mykey"
127.0.0.1:6379> setnx mykey "MongoDB" #如果存在,则创建失败,不会被覆盖
(integer) 0
127.0.0.1:6379> get mykey #值还是redis 没改变
"redis"
6.同时设置获取多个值:mset 与mget
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k2"
3) "k1"
127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> msetnx k1 v3 k4 v4 #msetnx 上述的setnx 相似,存在就创建失败。(同时成功 ,同时失败,保证了原子性)
(integer) 0
127.0.0.1:6379> keys * #查看结果 k4 没有
1) "k3"
2) "k2"
3) "k1"
7.对象
user:1:name "liuqing"
:表示user 对象 id为1 的name属性 值为 liuqing
user:1:age 2
:表示user 对象 id为1 的age属性 值为 2
127.0.0.1:6379> mset user:1:name "liuqing" user:1:age 2
OK
127.0.0.1:6379> keys * # 查看key发现还是普通key-value 键值对,只是key含义不同
1) "k2"
2) "user:1:name"
3) "user:1:age"
4) "k1"
5) "k3"
127.0.0.1:6379> mget user:1:age user:1:name
1) "2"
2) "liuqing"
8.getset
127.0.0.1:6379> getset k2 redis #先获取后设置值
"v2"
127.0.0.1:6379> getset k2 mongodb
"redis"
127.0.0.1:6379> get k2
"mongodb"
127.0.0.1:6379>
9.String 类型的使用场景
- 计数器
- 粉丝数
- 对象缓存存储
- 统计多单位下的数量