这是最简单Redis类型。如果你只用这种类型,Redis就像一个可以持久化的memcached服务器(注:memcache的数据仅保存在内存中,服务器重启后,数据将丢失)。
场景:
计数器
统计
粉丝
对象缓存存储
我们用redis-cli来玩一下字符串类型:
setex (set with expire) 设置过期时间
127.0.0.1:6379[1]> setex name 10 donghao
OK
127.0.0.1:6379[1]> ttl name
(integer) 7
setnx (set if not exist) 不存在设置,分布式锁中常常使用
127.0.0.1:6379[1]> setnx name 666
(integer) 0
127.0.0.1:6379[1]> get name
"donghao"
127.0.0.1:6379[1]> setnx name1 666
(integer) 1
127.0.0.1:6379[1]> get name1
"666"
基础使用
127.0.0.1:6379[1]> set key v1
OK
127.0.0.1:6379[1]> get key1
"v1"
127.0.0.1:6379[1]> APPEND key1 hello
(integer) 7
127.0.0.1:6379[1]> get key1
"v1hello"
127.0.0.1:6379[1]> strlen key1
(integer) 7
127.0.0.1:6379[1]> append key1 donghao
(integer) 14
计数器 INCR 命令将字符串值解析成整型,将其加一,最后将结果保存为新的字符串值
127.0.0.1:6379[1]> set view_count 0
OK
127.0.0.1:6379[1]> INCR view_count
(integer) 1
127.0.0.1:6379[1]> get view_count
"1"
127.0.0.1:6379[1]> decr view_count
(integer) 0
127.0.0.1:6379[1]> get view_count
"0"
127.0.0.1:6379[1]> incrby view_count 10
(integer) 10
127.0.0.1:6379[1]> decrby view_count 1
(integer) 9
GETSET命令 设置新值并且返回原值
127.0.0.1:6379[1]> set name hello,donghao
OK
127.0.0.1:6379[1]> GETSET name new,name
"hello,donghao"
127.0.0.1:6379[1]> get name
"new,name"
字符串截取
127.0.0.1:6379[1]> GETRANGE name 0 2
"new"
127.0.0.1:6379[1]> GETRANGE name 0 -1
"new,name"
127.0.0.1:6379[1]> SETRANGE name 0 old # 替换指定位置开始的字符串
(integer) 8
127.0.0.1:6379[1]> get name
"old,name"
MSET和MGET命令:
127.0.0.1:6379[1]> mset a 10 b 20 c 30
OK
127.0.0.1:6379[1]> mget a b c
1) "10"
2) "20"
3) "30"
MSETNX 原子性操作
127.0.0.1:6379[1]> MSETNX key1 v1 key2 v2
(integer) 1
127.0.0.1:6379[1]> MSETNX key1 v1 key2 v2
(integer) 0