Redis[1]数据类型与常用命令

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 查询元素在集合中的分数