Redis介绍
Redis手册
Redis介绍
REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。
Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。
Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。
Redis 命令手册
Redis 命令手册介绍了 Redis 常用键命令和数据类型命令,是目前最全的 Redis 命令手册。
键(Key)命令
Redis 是 key-value 型数据库,键(Key)命令是 Redis 中经常使用的命令。常用的键命令如下所示:
命令描述DEL用于删除 keyDUMP序列化给定 key ,并返回被序列化的值EXISTS检查给定 key 是否存在EXPIRE为给定 key 设置过期时间EXPIREAT用于为 key 设置过期时间,接受的时间参数是 UNIX 时间戳PEXPIRE设置 key 的过期时间,以毫秒计PEXPIREAT设置 key 过期时间的时间戳(unix timestamp),以毫秒计KEYS查找所有符合给定模式的 keyMOVE将当前数据库的 key 移动到给定的数据库中PERSIST移除 key 的过期时间,key 将持久保持PTTL以毫秒为单位返回 key 的剩余的过期时间TTL以秒为单位,返回给定 key 的剩余生存时间RANDOMKEY从当前数据库中随机返回一个 keyRENAME修改 key 的名称RENAMENX仅当 newkey 不存在时,将 key 改名为 newkeyTYPE返回 key 所储存的值的类型
String 命令
Strings(字符串)结构是 Redis 的基本数据类型,值value是字符串类型,常用命令:
命令描述SET设置指定 key 的值GET获取指定 key 的值GETRANGE返回 key 中字符串值的子字符GETSET将给定 key 的值设为 value ,并返回 key 的旧值 ( old value )GETBIT对 key 所储存的字符串值,获取指定偏移量上的位 ( bit )MGET获取所有(一个或多个)给定 key 的值SETBIT对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)SETEX设置 key 的值为 value 同时将过期时间设为 secondsSETNX只有在 key 不存在时设置 key 的值SETRANGE从偏移量 offset 开始用 value 覆写给定 key 所储存的字符串值STRLEN返回 key 所储存的字符串值的长度MSET同时设置一个或多个 key-value 对MSETNX同时设置一个或多个 key-value 对,仅当所有 key 都不存在时PSETEX以毫秒为单位设置 key 的生存时间INCR将 key 中储存的数字值增一INCRBY将 key 所储存的值加上给定的增量值 ( increment )INCRBYFLOAT将 key 所储存的值加上给定的浮点增量值 ( increment )DECR将 key 中储存的数字值减一DECRBY将 key 所储存的值减去给定的减量值 ( decrement )APPEND将 value 追加到 key 原来的值的末尾
Hash 命令
Hash(哈希散列)是 Redis 基本数据类型,值value 中存储的是 hash 表。Hash 特别适合用于存储对象。常用的命令:
命令说明HDEL用于删除哈希表中一个或多个字段HEXISTS用于判断哈希表中字段是否存在HGET获取存储在哈希表中指定字段的值HGETALL获取在哈希表中指定 key 的所有字段和值HINCRBY为存储在 key 中的哈希表指定字段做整数增量运算HKEYS获取存储在 key 中的哈希表的所有字段HLEN获取存储在 key 中的哈希表的字段数量HSET用于设置存储在 key 中的哈希表字段的值HVALS用于获取哈希表中的所有值
List 命令
List 是 Redis 中最常用数据类型。值value 中存储的是列表。:
命令描述BLPOP移出并获取列表的第一个元素BRPOP移出并获取列表的最后一个元素BRPOPLPUSH从列表中弹出一个值,并将该值插入到另外一个列表中并返回它LINDEX通过索引获取列表中的元素LINSERT在列表的元素前或者后插入元素LLEN获取列表长度LPOP移出并获取列表的第一个元素LPUSH将一个或多个值插入到列表头部LPUSHX将一个值插入到已存在的列表头部LRANGE获取列表指定范围内的元素LREM移除列表元素LSET通过索引设置列表元素的值LTRIM对一个列表进行修剪(trim)RPOP移除并获取列表最后一个元素RPOPLPUSH移除列表的最后一个元素,并将该元素添加到另一个列表并返回RPUSH在列表中添加一个或多个值RPUSHX为已存在的列表添加值
Set 命令
命令描述SADD向集合添加一个或多个成员SCARD获取集合的成员数SDIFF返回给定所有集合的差集SDIFFSTORE返回给定所有集合的差集并存储在 destination 中SINTER返回给定所有集合的交集SINTERSTORE返回给定所有集合的交集并存储在 destination 中SISMEMBER判断 member 元素是否是集合 key 的成员SMEMBERS返回集合中的所有成员SMOVE将 member 元素从 source 集合移动到 destination 集合SPOP移除并返回集合中的一个随机元素SRANDMEMBER返回集合中一个或多个随机数SREM移除集合中一个或多个成员SUNION返回所有给定集合的并集SUNIONSTORE所有给定集合的并集存储在 destination 集合中SSCAN迭代集合中的元素
Zset 命令
下表列出了 Redis 有序集合的基本命令
命令描述ZADD向有序集合添加一个或多个成员,或者更新已存在成员的分数ZCARD获取有序集合的成员数ZCOUNT计算在有序集合中指定区间分数的成员数ZINCRBY有序集合中对指定成员的分数加上增量 incrementZINTERSTORE计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中ZLEXCOUNT在有序集合中计算指定字典区间内成员数量ZRANGE通过索引区间返回有序集合成指定区间内的成员ZRANGEBYLEX通过字典区间返回有序集合的成员ZRANGEBYSCORE通过分数返回有序集合指定区间内的成员ZRANK返回有序集合中指定成员的索引ZREM移除有序集合中的一个或多个成员ZREMRANGEBYLEX移除有序集合中给定的字典区间的所有成员ZREMRANGEBYRANK移除有序集合中给定的排名区间的所有成员ZREMRANGEBYSCORE移除有序集合中给定的分数区间的所有成员ZREVRANGE返回有序集中指定区间内的成员,通过索引,分数从高到底ZREVRANGEBYSCORE返回有序集中指定分数区间内的成员,分数从高到低排序ZREVRANK返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序ZSCORE返回有序集中,成员的分数值ZUNIONSTORE计算一个或多个有序集的并集,并存储在新的 key 中ZSCAN迭代有序集合中的元素(包括元素成员和元素分值)
管理 redis 服务相关命令
下表列出了管理 redis 服务相关的命令
命令描述BGREWRITEAOF异步执行一个 AOF(AppendOnly File) 文件重写操作BGSAVE在后台异步保存当前数据库的数据到磁盘CLIENT关闭客户端连接CLIENT LIST获取连接到服务器的客户端连接列表CLIENT GETNAME获取连接的名称CLIENT PAUSE在指定时间内终止运行来自客户端的命令CLIENT SETNAME设置当前连接的名称CLUSTER SLOTS获取集群节点的映射数组COMMAND获取 Redis 命令详情数组COMMAND COUNT获取 Redis 命令总数COMMAND GETKEYS获取给定命令的所有键TIME返回当前服务器时间COMMAND INFO获取指定 Redis 命令描述的数组CONFIG GET获取指定配置参数的值CONFIG REWRITE修改 redis.conf 配置文件CONFIG SET修改 redis 配置参数,无需重启CONFIG RESETSTAT重置 INFO 命令中的某些统计数据DBSIZE返回当前数据库的 key 的数量DEBUG OBJECT获取 key 的调试信息DEBUG SEGFAULT让 Redis 服务崩溃FLUSHALL删除所有数据库的所有 keyFLUSHDB删除当前数据库的所有 keyINFO获取 Redis 服务器的各种信息和统计数值LASTSAVE返回最近一次 Redis 成功将数据保存到磁盘上的时间MONITOR实时打印出 Redis 服务器接收到的命令,调试用ROLE返回主从实例所属的角色SAVE异步保存数据到硬盘SHUTDOWN异步保存数据到硬盘,并关闭服务器SLAVEOF将当前服务器转变从属服务器(slave server)SLOWLOG管理 redis 的慢日志SYNC用于复制功能 ( replication ) 的内部命令