一、与数据库相关的命令
Redis启动后默认16个数据库,类似数组下表从零开始,初始默认使用零号库
-
切换数据库命令 select 数据库下标
-
查看当前数据库的key的数量 Dbsize
-
清空当前库 flushdb
-
清空所有库 flushall
二、与键相关的常用命令
-
查看所有的键 keys *
-
判断是否存在某个键 exists key
如果存在返回1,否则返回0
-
从当前库移动某个键到目标库 move key db
-
设置键的过期时间 expire key 秒钟
-
查看还有多少秒过期 ttl key (-1表示永不过期,-2表示已过期)
-
查看key的类型 type key
三、5大数据类型
String(字符串)
String是redis最基本的类型,一个key对应一个value。它是二进制安全的,也就是说它可以包含任何数据,比如序列化的对象或图片等。一个字符串value最大可以是512m。
命令 | 说明 | 示例 |
---|---|---|
set key value | 设置指定key的值 | |
get key | 获取指定key的值 | |
del key | 删除一个key | |
append key value | 给一个key拼接一个字符串 | |
strlen key | 获取键的值得长度 | |
incr/decr/incrby/decrby/ | 对键的值进行加减操作,键值必须是数字 | |
getrange | 获取指定区间范围内的值,从0到-1代表获取全部 | |
setrange | 设置指定区间范围内的值 | |
setex key 秒 值 | 设置带过期时间的键 | |
setnx | 只有键不存在时才设置键的值 | |
mset | 同时设置一个或多个键值对 | |
mget | 同时获取多个键的值 | |
msetnx | 同时设置一个或多个键值对,仅当所有给定的键都不存在时才能生效 | |
getset | 将给定 key 的值设为 value ,并返回 key 的旧值 |
List(列表)
列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部或者尾部。其底层结构是一个链表。
命令 | 说明 | 示例 |
---|---|---|
lpush key value1 value2... | 将一个或多个值插入到列表头部 | |
rpush key value1 value2... | 将一个或多个值插入到列表尾部 | |
lrange start end | 获取指定范围内的元素,start为0,end为-1时表示获取全部 | |
lpop key | 从列表头部移除一个元素并返回 | |
rpop key | 从列表尾部移除一个元素并返回 | |
lindex key index | 通过索引获取列表中的元素 | |
llen key | 获取列表的长度 | |
lrem key count value | 从左到右删除count个值等于value的元素,返回的值为实际删除的数量,当count=0时,表示删除全部值 | |
ltrim key start end | 截取指定索引区间的元素 | |
rpoplpush key1 key2 | 从key1列表尾部移除一个元素插入key2列表的头部 | |
lset key index value | 修改某个下标对应的值 | |
linsert key before/after 值1 值2 | 在列表某个已有值的前后再添加具体值 |
Hash(哈希)
哈希是一个键值对的集合,由一个string类型的key和value构成的映射表,它很适合用来存储对象。
命令 | 说明 | 示例 |
---|---|---|
hset key field value | 将哈希表key中的字段field的值设置为value | |
hget key field | 获取哈希表中指定字段的值 | |
hmset key field1 value1 field2 value2 ... | 同时将多个key-value设置到哈希表中 | |
hmget key field1 field2 | 获取所有给定字段的值 | |
hgetall key | 获取哈希表中的所以字段和值 | |
hdel key1 key2 | 删除一个或多个哈希表中的字段 | |
hlen key | 获取哈希表中字段的数量 | |
hexists key field | 查看哈希表中指定的字段是否存在 | |
hkeys key | 查看哈希表中所有的键 | |
hvals key | 查看哈希表中所有的值 | |
hincrby key field incrment | 为哈希表 key 中的域 field 的值加上增量 increment | |
hincrbyfloat | 为哈希表中的字段值加上指定浮点数增量值 | |
hsetnx key field value | 当哈希表中指定的键不存在时赋值 |
Set(集合)
集合是string类型的无序集合,底层由hashtable实现。
命令 | 说明 | 示例 |
---|---|---|
sadd key value1 value2 ... | 添加一个或多个成员到集合中 | |
smembers key | 返回集合中的所有成员 | |
sismember key value | 判断元素是否是集合中的成员 | |
scard key | 获取集合中的成员数 | |
srem key value1 value2... | 从集合中移除一个或多个成员 | |
srandmember key n | 返回集合中一个或多个随机数 | |
spop key n | 移除并返回集合中的一个或多个元素 | |
smove source destination value | 从集合source将元素value移动到集合destination | |
sdiff key1 key2 | 求两个集合的差集 | |
sinter key1 key2 | 求两个集合的交集 | |
sunion key1 key2 | 求两个集合的并集 |
Zset(有序集合)
zset和set一样也是集合,不同的是zset的每个元素都会关联一个double类型的分数。通过该分数,redis可以对zset中的元素进行排序。zset的成员唯一,但是分数score可以重复。
命令 | 说明 | 示例 |
---|---|---|
zadd key score1 value1 score2 value2 | 向有序集合添加一个或多个成员,或者更新已存在成员的分数 | |
zrange key start stop withscores(可选) | 通过索引区间返回指定区间内的成员 | |
zrangebysocre key score_start score_end withcores(可选) limit(可选) | 通过分数返回有序集合指定区间内的成员 | |
zrem key value1 value2 ... | 移除集合内一个或多个成员 | |
zcard key | 获取有序集合的成员数 | |
zcount key score_start score_end | 计算在有序集合指定分数区间的成员数 | |
zrank key value | 返回有序集合中指定成员的索引 | |
zrevrank key value | 返回有序集合中指定成员的排名,有序集合成员按分数值递减(从大到小)排序 | |
zrevrange key start stop withscores(可选) | 返回有序集合中指定区间内的成员,通过索引, 从高到低 | |
zrevrangebyscore key score_end score_start | 返回有序集合中指定分数区间内的成员,分数从高到低排序 |