Redis数据类型
1. Redis的五大数据类型
- String(字符串)
- Hash(类似Java的Map)
- List(类似Java的LinkedList)
- Set(集合)re
- Zset(sorted set 有序集合)
2. Redis常用操作命令
redis配置文件中默认提供16个database,并默认0号
另外要注意,对于key和value,redis是区分大小写的,而命令不区分大小写
select index (0-15)可以切换database
dbsize 查看当前数据库中的key个数
flushdb 清空当前database
flushall 清空所有database
clear 清屏
2.1 key相关命令
keys *
查看当前database中所有的key
exists key
判断某个key是否存在
在Redis中,通常命令执行的结果返回1
表示成功,0
表示失败(并非错误只是没有匹配或者没有执行).
move key db
从当前库将key移动到db类似shell的mv命令
expire key seconds
为key设定过期时间,到期后key会被移除
10秒后
ttl key
查看key还有多少秒过期,-1表示永不过期,-2表示已经过期
type key
查看key的类型
2.2 string常用命令
set key value
设置key的值为value, key存在则覆盖, 不存在则新增.
get key
获取key的值
append key value
在key对应的值尾部追加value字符串
strlen key
返回key对应的值的字符串长度
incr key
将key的对应的值+1
decr key
将key的对应的值-1
incrby key increment
将key的对应的值增加increment,其值只能是整数,可以是负数
decrby key decrement
将key的对应的值减少decrement,其值只能是整数,可以是负数
setrange key start end str
将key中start到end索引范围的内容替换为str
getrange key start end
按start和end的索引范围从key中获取相应的值,0 -1表示全部
setex key seconds value
设置key的值为value,并且设置失效时长为seconds
setnx key value
如果key不存在,则设置key的值为value,否则不做操作
mset key1 value1 key2 value2 ....
multiset,一次性设置多个key-value
mget key1 key2 ....
multiget,一次性获取多个key对应的value
msetnx key1 value1 key2 value2 ....
当key1,key2,...都不存在时,为他们设置对应的value
getset key value
先get,在将值设置为value
2.3 List常用命令
可以看做一个双向链表,left,right都可以添加元素,有序可重复
如果值全移除,对应的键也就消失了
头和尾操作效率都极高,但假如是对中间元素进行操作,效率就很惨淡了
lpush key value1 value2 value3 ....
设置key的值为value1,value2,value3.... 单key多value
rpush key value1 value2 value3