Redis数据类型一 :String(字符串)
Redis-key
set [key] [value] # 设置key的value值
get [key] # 获取key的value值
EXISTS [key] # 判断key是否存在,(integer)0:不存在 (integer) 1: 存在
move [key] 1 # 移除当前数据库指定的key
EXPIRE [key] 10 # 设置key的过期时间(单位秒)
ttl [key] # 查看剩余秒数(time to live)
type [key] # 查看数据类型
String类似的使用场景:value除了字符串还可以是数字
- 计数器
- 统计多单位数量 uid:95256449:follow 0
- 粉丝数
- 对象缓存存储
append:为key追加字符串,不存在则新增
strlen:获取字符串长度
127.0.0.1:6379> append name 'axu'
(integer) 3
127.0.0.1:6379> strlen name
(integer) 3
incr(increase):自增1
decr(decrease):自减1
INCRBY [key] [num] :设置步长,指定增量
DECRBY [key] [num] : 设置步长,指定减量
127.0.0.1:6379> incr view
(integer) 1
127.0.0.1:6379> incr view
(integer) 2
127.0.0.1:6379> decr view
(integer) 1
127.0.0.1:6379> INCRBY view 3 # 增长3
(integer) 4
127.0.0.1:6379> get view
"4"
127.0.0.1:6379> DECRBY view 2 # 减少2
(integer) 2
127.0.0.1:6379> get view
"2"
127.0.0.1:6379>
getrange key start end:截取开始到结尾的字符串
setrange key start value:替换指定位置开始的字符串
127.0.0.1:6379> set name "zhangzhehan"
OK
127.0.0.1:6379> append name ",hello"
(integer) 17
127.0.0.1:6379> getrange name 0 -1 # 查看全部的字符串
"zhangzhehan,hello"
127.0.0.1:6379> getrange name 0 11 # 查看指定长度的字符串
"zhangzhehan,"
127.0.0.1:6379> getrange name -1 -1 # 查看最后一个字符
"o"
127.0.0.1:6379>getrange name 0 zhou
127.0.0.1:6379> getrange name 0 -1
"zhougzhehan,hello"
setex [key] [second] [value]:设置过期时间 (set with expire)
setnx [key] [value] :不存在时再设置(在分布式锁中常常使用,保证当前值是存在的,set if not exist)
mset:设置多个值(multi set)
mget:批量获取值
msetnx:不存在时批量设置,是一个原子性的操作,要么一起成功,要么一起失败
127.0.0.1:6379> setex age 30 18 # 设置age的值为18 30秒后过期
OK
127.0.0.1:6379> setnx mykey 'redis' # 如果mykey不存在,创建成功
(integer) 1
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3 # 批量设置k1 k2 k3
OK
127.0.0.1:6379> mget k1 k2 k3 # 批量获取值
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> msetnx k1 v1 k4 v4 # 不存在时才能设置成功
(integer) 0 # 失败
127.0.0.1:6379>
对象
set user:1 {name:zhouzishu,age:3}: 设置一个user:1对象 值为json字符串来保存对象 user:{id}:{field}
getset [k] [v]
127.0.0.1:6379> mset user:1:name zhuzishu user:1:age 2
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "zhuzishu"
2) "2"
127.0.0.1:6379> getset db redis # 如果不存在值就返回nil,存在值就获取原来的值并获取新的值
(nil)
127.0.0.1:6379> get db
"redis"
127.0.0.1:6379> getset db mongodb
"redis"
127.0.0.1:6379> get db
"mongodb"
127.0.0.1:6379>