redis String 类型常用命令
String 是Redis中最基本的类型,一个key 对应一个 value,单值类型
Redis 字符串value 最大不要超过 512M。
常用
set
get
del : 删除
keys :查看所有值
exists :判断是否存在
append :追加值
strlen :长度
127.0.0.1:6379> set redis 'hello World'
OK
127.0.0.1:6379> get redis
"hello World"
127.0.0.1:6379> exists redis #否存在
(integer) 1
127.0.0.1:6379> type redis #查类型
string
127.0.0.1:6379> keys * # 有 key
1) "redis"
127.0.0.1:6379> append redis 'come on' #后面追加值
(integer) 18
127.0.0.1:6379> get redis
"hello Worldcome on"
127.0.0.1:6379> strlen redis #数据长度
(integer) 18
127.0.0.1:6379> del redis #删除
(integer) 1
127.0.0.1:6379> keys *
(empty array)
自增自减(增量设置)
incr : 自增
decr : 自减
incrby : 按照步长自增
decrby : 按照步长自减
127.0.0.1:6379> set num 1
OK
127.0.0.1:6379> get num
"1"
127.0.0.1:6379> incr num #incr 每次自增 1
(integer) 2
127.0.0.1:6379> get num
"2"
127.0.0.1:6379> decr num #decr 每次减 1
(integer) 1
127.0.0.1:6379> get num
"1"
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> incr num
(integer) 3
127.0.0.1:6379> incr num
(integer) 4
127.0.0.1:6379> decr num
(integer) 3
127.0.0.1:6379> incrby num 10 #按照步长增加,10是步长
(integer) 13
127.0.0.1:6379> decrby num 5 #按照步长减少,5是步长
(integer) 8
范围
range
getrange
setrange
127.0.0.1:6379> set name 123456789
OK
127.0.0.1:6379> strlen name
(integer) 9
127.0.0.1:6379> getrange name 1 3 #获取指定值[234]
"234"
127.0.0.1:6379> getrange name 0 -1 #所有值
"123456789"
127.0.0.1:6379> setrange name 2 a #索引为2的值用 a 替换
(integer) 9
127.0.0.1:6379> get name
"12a456789"
setex setnx
setnx : 设置超时时间
setnx : 值不存在时,添加,已存在时,不添加
127.0.0.1:6379> setex name 60 guanzc # 设置超时时间
OK
127.0.0.1:6379> ttl name
(integer) 56
127.0.0.1:6379> ttl name
(integer) 53
127.0.0.1:6379> ttl name
(integer) -2
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> setnx k2 hello # 不存在添加成功
(integer) 1
127.0.0.1:6379> setnx k2 world # 存在添加失败
(integer) 0
127.0.0.1:6379>
批量操作
mset : 批量新增
mget : 批量获取
msetnx : 批量修改
127.0.0.1:6379>
127.0.0.1:6379> mset a1 1 a2 2 a3 3 a4 4 a5 5 #批量新增
OK
127.0.0.1:6379> keys *
1) "k1"
2) "a3"
3) "a5"
4) "a4"
5) "k2"
6) "a2"
7) "a1"
127.0.0.1:6379> mget a1 a2 a3 a4 a5 #批量获取
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
127.0.0.1:6379> msetnx name guan a1 zhichao # name 不存在,a1 存在,添加失败,说明redis 是原子性操作,只要有一个存在就操作失败,可用于锁
(integer) 0
127.0.0.1:6379> keys *
1) "k1"
2) "a3"
3) "a5"
4) "a4"
5) "k2"
6) "a2"
7) "a1"
127.0.0.1:6379>
保存对象
可以存储为json,需要解析,如果不想解析可以保存为对象形式。person[索引]:属性
127.0.0.1:6379> mset p:1:name 张三 p:1:age 18 p:1:address beijing
OK
127.0.0.1:6379> keys *
1) "p:1:address"
2) "p:1:age"
3) "p:1:name"
127.0.0.1:6379> mget p:1:name p:1:age p:1:address
1) "\xe5\xbc\xa0\xe4\xb8\x89"
2) "18"
3) "beijing"
getset 先获取值,后赋值
127.0.0.1:6379> getset a1 1111
1
127.0.0.1:6379> get a1
1111
127.0.0.1:6379>