Redis 基础命令
命令 | 描述 |
---|---|
redis-cli -h host -p port -a password | Redis连接指令 |
CONFIG GET configname | 得到配置值 |
CONFIG SET configname configvalue | 设置配置值 |
SELECT dbname | 切换数据库 |
FLUSHDB | 清空数据库[危险] |
FLUSHALL | 清空所有数据库[危险] |
Redis 键命令
命令 | 描述 |
---|---|
KEYS pattern | 查找所有符合给定模式(pattern)的key[危险] |
EXISTS key | 检查key是否存在 |
TYPE key | 查看key对应值的类型 |
RENAME key newkey | 修改key的名称 |
DEL key | 在key存在时删除key |
MOVE key db | 将键移到目标数据库 |
EXPIRE key | 设置过期时间(秒) |
Redis数据类型
类型 | 简介 | 特性 | 场景 |
---|---|---|---|
String(字符串) | 二进制安全 | 可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M | — |
Hash(字典) | 键值对集合,即编程语言中的Map类型 | 适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值 | 存储、读取、修改用户属性 |
List(列表) | 双向链表 | 增删快,提供了操作某一段元素的API | 1. 最新消息排行等功能(如朋友圈的时间线)\n2. 消息队列 |
Set(集合) | 哈希表实现,元素不重复 | 1. 添加、删除、查找的复杂度都是O(1)\n2.为集合提供了求交集、并集、差集等操作 | 1. 共同好友\n2.利用唯一性,统计访问网站的所有独立IP\n3.好友推荐时,根据tag求交集,大于某个阈值就可以推荐 |
Sorted Set(有序集合) | 将Set中的元素增加一个权重参数score,元素按score有序排列 | 数据插入集合时,已经进行天然排序 | 1. 排行榜\n 2. 带权重的消息队列 |
字符串
命令 | 描述 |
---|---|
SET key value | 设置key为指定的字符串 |
APPEND key value | 如果 key 已经存在,并且值为字符串,那么这个命令会把value追加到原来值(value)的结尾。如果不存在,那么类似SET |
GET key | 获取key值,不存在则返回nil |
GETRANGE key start end | 获取索引开始位置(包含)和结束位置(包含)所对应的值,索引从0开始 |
GETSET key value | 设置新的key值,并获取设置之前的值,key不存在则设置,并返回nil |
MGET key [key …] | 批量获取key的值 |
MSET key value [key value…] | 批量设置key的值 |
DECR key | 数字类型key自减操作,key类型不是数字则报错 |
INCR key | 数字类型key自增操作 |
STRLEN key | 获取key值长度 |
hash
命令 | 描述 |
---|---|
HSET key field value | 设置hash表中字段的值 |
HMSET key field value [field value …] | 批量设置hash表中字段的值 |
HSETNX key field value | 只有当字段不存在的时候才设置hash表中字段值 |
HGET key field | 获取hash表中字段的值 |
HMGET key field [field …] | 批量获取hash表中字段的值 |
HGETALL key | 获取hash表中的所有字段和值 |
HEXISTS key field | 判断hash表中字段是否存在 |
HDEL key field [field …] | 删除hash表中一个或多个字段 |
HLEN key | 获取hash表中字段个数 |
HVALS key | 获取hash表中所有字段的值 |
HKEYS key | 获取hash表中所有的字段 |
HSTRLEN key field | 获取hash表中指定字段的值的长度 |
list
命令 | 描述 | |
---|---|---|
LPUSH key value [value …] | 从列表左边放入一个或者多个元素 | |
LPUSHX key value | 当列表存在时,从左边放入一个元素 | |
RPUSH key value [value …] | 从列表右边放入一个或者多个元素 | |
RPUSHX key value | 列表存在时,从右边放入一个元素 | |
LSET key index value | 根据索引位置设置列表中元素的值 | |
LINDEX key index | 根据列表索引获取元素值,索引从0开始 | |
LINSERT key BEFORE\ | AFTER pivot value | 在列表中,基于某个基准点插入值 |
LLEN key | 获取列表长度 | |
LRANGE key start stop | 根据索引获取列表中的元素 | |
LREM key count value | 从key移除前count个出现值为value的元素(count > 0 前到后, count < 0 后到前, count = 0 移除所有) | |
LPOP key | 删除列表左边的一个元素 | |
RPOP key | 删除列表右边的一个元素 |
set
命令 | 描述 |
---|---|
SADD key member [member …] | 添加一个或多个元素到集合中 |
SREM key member [member …] | 删除一个或多个集合中的元素 |
SCARD key | 获取集合中元素数量 |
SMEMBERS key | 返回集合中所有的元素 |
SINTER key [key …] | 获取两个或两个以上集合的交集 |
SUNION key [key …] | 获取两个或两个以上集合的并集 |
SDIFF key [key …] | 获取两个或者两个以上集合的差集 |
SISMEMBER key member | 判断元素是否是在指定集合中 |
SMOVE source destination member | 移动一个集合中的元素到另一个集合 |
zset
命令 | 描述 |
---|---|
ZADD key score member [score member] | 向一个有序集合添加成员 |
ZCARD key | 获取有序集合中元素个数 |
ZCOUNT key min max | 指定分数范围的元素个数 |
ZINCRBY key increment member | 为有序集的元素的score值加上指定的increment |
ZRANGE key start stop [WITHSCORES] | 根据有序看分数区间获取集合中的元素 |
ZRANK key member | 得到成员的排名 |
ZREM key member [member …] | 删除有序集合中一个或多个元素 |
ZSCORE key member | 查询元素在集合中的分数 |