Redis命令
大约 3 分钟
官方命令大全网址:http://www.redis.cn/commands.html
数据类型
| 数据类型 | 简单描述 | 使用场景 |
|---|---|---|
| String | 常规的 key-value 缓存应用 | 场景:共享用户 session,计数器(INCR),分布式锁(setnx) |
| hash | string 类型的 field 和 value 的映射表,适合用于存储对象 | 场景:爆品商品,秒杀仓库,库存量 |
| list | 存储列表结构,有序(插入顺序)可重复,基于lrange可实现简单的高性能分页 | 场景:文章的评论,简单的消息队列 |
| set | 无序,不重复 | 场景:共同好友,共同喜好,二度好友(你可能认识) |
| Zset | 内部使用 HashMap 和跳跃表(SkipList)来保证数据的存储和有序 | 场景:排行榜,有权重的消息队列,热搜, |
| BitMap | 通过一个 bit 位来表示某个元素对应的值或者状态 | 场景:统计用户的活跃数,在线人数 |
| HyperLogLog | 基于 bitmap 计数,内部编码主要分稀疏型和密集型 | 场景:记录网站 IP 注册数,每日访问的 IP 数,页面实时 UV、在线用户人数 |
| Geospatial | 场景:保存地理位置,位置距离计算,根据半径计算位置 |
Redis 基本命令
| 数据类型 | redis 命令 | 命令说明 |
|---|---|---|
| 通用指令 | del key | 删除指定的 key |
| exists key | 指定的 key 是否存在 | |
| type key | 获取 key 的类型 | |
| expire key seconds | 设置有效时间,单位:秒 | |
| pexpire key milliseconds | 设置有效时间,单位:毫秒 | |
| expireat key timestamp | 设置时间戳,单位:秒 | |
| pexpireat key milliseconds-timestamp | 设置时间戳,单位:毫秒 | |
| ttl key | 返回有效时间,单位:秒,key 存在但未设置有效时间,则返回-1 | |
| pttl key | 返回有效时间,单位:毫秒,key 不存在,则返回-2 | |
| persist key | 将 key 从时效性切换为永久性 | |
| keys * | pattern 是匹配模式,若是指定为 * 则查询所有 key | |
| rename key newkey | 重命名,覆盖式 | |
| renamenx key newkey | 重命名,newkey 存在则报错 | |
| dbsize | 返回当前数据库的 key 数量 | |
| flushdb | 清空当前数据库的 key | |
| flushall | 清空所有数据库的 key | |
| String | mset name lisi age 30 gender 1 | 一次性保存多个数据 |
| mget name age gender | 一次性取出多个数据 | |
| strlen name | 字符串长度 | |
| append name abc | 字符串追加 | |
| incr num | 自增一 | |
| incrby num 2 | 自增指定步长 | |
| incrbyfloat num 0.5 | 自增小数 | |
| decr num | 自减一 | |
| decrby num 2 | 自减指定步长 | |
| decrbyfloat num 0.5 | 自减小数 | |
| setex key seconds 1 | 设置 key 的有效期,单位是秒 | |
| psetex key milliseconds 1000 | 设置 key 的有效期,单位是毫秒 | |
| del name | 删除 name | |
| hash | hmset user name zhangsan age 20 | 同时设置多个属性 |
| hgetall user | 将属性一次性读取出来 | |
| hmget user name age | 获取指定属性 | |
| hdel user name | 删除属性 | |
| hlen user | hash 中属性的数量 | |
| hexists user name | 判断 hash 中是否存在指定的属性,存在返回 1,不存在返回 0 | |
| hincrby user age 1 | 属性自增 | |
| hincrbyfloat user age 0.5 | 属性自增小数 | |
| hincrby user age -1 | 属性自减 | |
| list | lpush nums 1 2 3 4 5 | 从左侧添加 |
| rpush nums 1 2 3 4 5 | 从右侧添加 | |
| lrange nums 0 4 | 读取的索引范围 | |
| lpop key | 从左侧弹出数据 | |
| rpop key | 从右侧弹出数据 | |
| lrem nums 1 2 | 从数据中移除[cout]个指定数据[value] | |
| lindex nums 0 | 获取指定索引上的数据 | |
| llen nums | 获取 list 的长度 | |
| blpop nums 2 3 30 | 规定时间内获取并移除数据、blpop key1 [key2] timeout | |
| set | sadd nums 1 2 3 | 添加数据 |
| smembers nums | 获取到 set 中的所有数据 | |
| srem nums 1 2 | 删除数据 | |
| sismember nums 1 | 判断 set 中是否包含指定的数据 | |
| sorted_set | zadd scores 95 chinese 98 math 85 english | 保存数据 |
| zrange scores 0 -1 | 获取全部数据 | |
| zrange scores 0 -1 withscores | 排序的方式获取数据 | |
| zrevrange scores 0 -1 withscores | 逆序的方式获取数据 | |
| zrem scores chinese math | 删除数据 | |
| zrangebyscore scores 0 95 | 其中 scores 是 key, 0 95 是查找范围 | |
| zrangebyscore scores 0 100 limit 0 2 | 查询分数在 100 以下的前两个数据 |
