redis是以键值对的形式存储的,键是字符串类型,值可以是以下五种类型:
String
Hash
List
Set
ZSet(SortedSet)
通用命令
命令 | 操作 |
---|
ttl key | 查询存活时间(value>=0:剩余存活时间;value=-1:永久存活;value=-2:已删除) |
keys pattern | 查找所有符合给定模式(pattern)的key;(keys */? :*代表任意个字符,?代表任意一个字符 ) |
exists key | 检查给定key是否存在 |
type key | 返回key所储存的值的类型 |
del key | 该命令用于在key存在时删除key |
select 数字 | 选择一个数据库(0~15)redis默认有16个数据库(可以改数量),默认是DB0 |
1、String类型
命令 | 操作 |
---|
set key value | 设置指定key的值 |
get key | 获取指定key的值 |
del key | 删除指定key的值 |
setex key seconds value | 设置指定key的值,并将key的过期时间设为seconds秒 |
setex key value | 只有在key不存在时设置key的值 |
2、hash类型
redis中hash是一个string类型的field和value的映射表,hash特别适合用于存储对象
命令 | 操作 |
---|
hset key field value | 将哈希表key中的字段field的值设为value |
hget key field | 获取存储在哈希表中指定字段的值 |
hdel key field | 删除存储在哈希表中的指定字段 |
hkeys key | 获取哈希表中所有字段 |
hvals key | 获取哈希表中所有值 |
hgetall key | 获取哈希表中所有键和值 |
3、List类型
redis列表是简单的字符串列表(有序、可重复,底层数据结构是链表),按照插入顺序排序;
应用场景:栈和队列
命令 | 操作 |
---|
lpush key value1 [value2] | 将一个或多个值插入到列表头部 |
rpush key value1 [value2] | 将一个或多个值插入到列表尾部 |
lrange key start stop | 获取列表指定范围内的元素(左起0,右起-1) |
rpop key | 移除并获取列表最后一个元素 |
lpop key | 移除并获取列表第一个元素 |
llen key | 获取列表长度 |
4、Set类型
Redis中set 是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据;
应用场景:数据去重
命令 | 操作 |
---|
sadd key member1 [member2] | 向集合中添加一个或多个成员 |
smembers key | 返回集合中的所有成员 |
scard key | 获取集合的成员数 |
sinter key1 [key2] | 返回给定所有集合的交集 |
sunion key1 [key2] | 返回所有给定集合的并集 |
srem key member1 [member2] | 删除集合中一个或多个成员 |
5、ZSet(SortedSet)类型
Redis有序集合是string类型元素的集合,且不允许有重复成员。每个元素都会关联一个double类型的分数。
应用场景 :实时排序,实现各种排行榜
命令 | 操作 |
---|
zadd key score1 member1 [score2 member2] | 向有序集合添加一个或多个成员 |
zrange key start stop [withscores] | 通过索引区间返回有序集合中指定区间的成员(升序) |
zrevrange key start stop [withscores] | 通过索引区间返回有序集合中指定区间的成员(降序) |
zincrby key increment member | 有序集合中对指定成员的分数加上增量increment |
zrem key member [member] | 移除有序集合中的一个或多个成员 |