Redis键(key)
常用命令
key 查看当前库所有的key(匹配:key )
exists key 判断某个key是否存在
type key 查看你的key是什么类型
del key 删除指定的数据key
unlink key 根据value选择非阻塞删除
仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作
expire key10 10秒钟:为给定的key设置过期时间
ttl key查看还有多少秒过期,-1表示永不过期 .-2表示已经过期了
select命令切换数据库
dbsize查看当前数据库key的数量
flushdb清空当前库
flushall通杀数据库
Redis字符串(String)
常用命令
set
get
append
strlen
strnx
incr
decr
mset
同时设置一个或多个key-value对
同时获取一个或多个value
mget
msetnx
同时设置一个或多个key-value时,当且仅当所有给定key都不存在
getrange
获得值得范围,类似于java中得substring,前包,后包
setrange
用
setex
设置键的同时,设置过期时间,单位秒。
getset
以新换旧,设置了新值同时获得旧值。
Redis列表(List)
单键多值 Redis列表是简单的字符串列表,按照顺序排序,你可以添加一个元素到列表的头部(左边)或者尾部(右边),底层是双向链表
常用命令
lpush/rpush
lpop/rpop
rpoprpush
lrange
按照索引下标获得元素(从左到右)
lrange
lindex
llen
linsert
lrem
lset
List底层数据结构为快速链表quickList
Redis集合(Set)
redis set对外提供的功能与list类型是一个列表的功能,特殊之处是set可以自动排重的,当你需要存储一个列表的,当你需要存储一个列表数据,又希望不出现重复的时候,set是一个很好的选择。
Redis的set是string类型的无序集合。它的底层其实是一个value为null的hash表,所有添加,删除,查找的复杂度都是O(1)
sadd
将一个或多个member元素加入集合key中,已经存在的member元素将被忽略,
Smember
Sismember
scard
srem
spop
srandomember
smove
sinter
sunion
sdiff
底层是一个字典,字典里面包含两个哈希表
Redis哈希(Hash)
Redis的哈希是一个键值对,哈希适合存放对象。
h
hset
hget
hmet
hexists
hkeys
hvals
hinceby
hsetnx
底层结构ziplist(压缩列表)、hashtable(哈希表),当field
Redis有序集合Zset
Redis有序集合Zset与普通几个set非常相似,是一个没有重复元素的字符串集合
不同之处是有序集合的每个成员都关联了一个评分(Score),这个评分(score)被用来按照从最低到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以重复。
底层: skiplist 编码的 Zset 底层为一个被称为 zset 的结构体,这个结构体中包含一个字典和一个跳跃表