16个数据库为:DB 0~DB 15
默认使用DB 0 ,可以使用select n切换到DB n,dbsize可以查看当前数据库的大小,与key数量相关
keys * :查看当前数据库中所有的key。
flushdb:清空当前数据库中的键值对。
flushall:清空所有数据库的键值对。
exists key:判断键是否存在
del key:删除键值对
move key db:将键值对移动到指定数据库
expire key second:设置键值对的过期时间
type key:查看value的数据类型
String 字符串
命令 | 作用 |
---|---|
set key value | 设置名为可以、值为value |
get key | 获取key的值 |
getset key value | 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。 |
setnx key value | 仅当key不存在时进行set |
mset key1 value1 [key2 value2…] | 批量set键值对 |
mget key1 [key2…] | 批量获取多个key保存的值 |
getset key value | 如果不存在值,则返回nil,如果存在值,获取原来的值,并设置新的值 |
SETEX key seconds value | set 键值对并设置过期时间 |
value除了是字符串还可以是数字
List列表
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
命令 | 作用 |
---|---|
LPUSH/RPUSH key value1[value2…] | 从左边/右边向列表中PUSH值(一个或者多个) |
LRANGE key start end | 获取list 起止元素==(索引从左往右 递增)== |
LPUSHX/RPUSHX key value | 向已存在的列名中push值(一个或者多个) |
LINSERT key BEFORE | AFTER pivot value |
LLEN key | 查看列表长度 |
LINDEX key index | 通过索引获取列表元素 |
LSET key index value | 通过索引为元素设值 |
LPOP/RPOP key | 从最左边/最右边移除值 并返回 |
应用:消息排队!消息队列(Lpush Rpop),栈(Lpush Lpop)
Hash哈希表
.
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Set就是一种简化的Hash,只变动key,而value使用默认值填充。可以将一个Hash表作为一个对象进行存储,表中存放对象的信息。
命令 | 作用 |
---|---|
HSET key field value | 将哈希表 key 中的字段 field 的值设为 value 。重复设置同一个field会覆盖,返回0 |
HMSET key field1 value1 [field2 value2…] | 同时将多个 field-value (域-值)对设置到哈希表 key 中。 |
HSETNX key field value | 只有在字段 field 不存在时,设置哈希表字段的值。 |
HEXISTS key fielde | 查看哈希表 key 中,指定的字段是否存在。 |
HGET key field value | 获取存储在哈希表中指定字段的值 |
HMGET key field1 [field2…] | 获取所有给定字段的值 |
HGETALL key | 获取在哈希表key 的所有字段和值 |
HKEYS key | 获取哈希表key中所有的字段 |
HLEN key | 获取哈希表中字段的数量 |
HVALS key | 获取哈希表中所有值 |
HDEL key field1 [field2…] | 删除哈希表key中一个/多个field字段 |
Hash更适合于对象的存储,Sring更加适合字符串存储!
Set(集合)
Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
命令 | 作用 |
---|---|
SADD key member1[member2…] | 向集合中无序增加一个/多个成员 |
SCARD key | 获取集合的成员数 |
SMEMBERS key | 返回集合中所有的成员 |
SISMEMBER key member | 查询member元素是否是集合的成员,结果是无序的 |
SREM key member1[member2…] | 移除集合中一个/多个成员 |
SINTER key1 [key2…] | 返回所有集合的交集 |
SUNION key1 [key2…] | 返回所有集合的并集 |
Zset有序集合
不同的是每个元素都会关联一个double类型的分数(score)。redis正是通过分数来为集合中的成员进行从小到大的排序。
score相同:按字典顺序排序
有序集合的成员是唯一的,但分数(score)却可以重复。
命令 | 作用 |
---|---|
ZADD key score member1 [score2 member2] | 向有序集合添加一个或多个成员,或者更新已存在成员的分数 |
ZCARD key | 获取有序集合的成员数 |
ZRANK key member | 返回有序集合中指定成员的索引 |
ZSCORE key member | 返回有序集中,成员的分数值 |
ZREM key member1 [member2…] | 移除有序集合中一个/多个成员 |
应用案例:
- set排序 存储班级成绩表 工资表排序
- 普通消息,1.重要消息 2.带权重进行判断
- 排行榜应用实现,取Top N测试