本文共 4204 字,大约阅读时间需要 14 分钟。
Redis 是一个开源的高性能键值对内存数据库。其所有的数据都保存在内存中,所以相比于其他基于硬盘存储的数据库有着非常快的读写速度,而其对持久化的支持,也减小了数据丢失的风险。
随着 Redis 功能的不断丰富,其也不在局限于数据库系统,如为每个键设置生存时间(Time to Live,TTL),则可以将其作为缓存系统来使用。
一个 Redis 实例中的所有键值对并不是一个整体,其默认分为 16 个“区”,以 0 到 15 的数字命名,使用 select <index>
命令,可以选择使用指定的区保存键值对。
Remote Dictionary Server,远程字典服务器,存储键值对,键名是字符串类型,而键值可以是字符串、散列表、列表、有序或无序集合。
Redis 中的命令都是原子性的,如 incr 命令,不会因为多个客户端连接执行,而导致自增值异常。
redis 官网地址:
命令 | 说明 |
---|---|
keys pattern | 列出符合通配规则的键 |
exists key | 判断键是否存在 |
del key [key1 ···] | 删除一个或多个键 |
type key | 获取键值的数据类型 |
expire key seconds | 设置缓存有效秒数 |
命令 | 说明 |
---|---|
set key value | 设置字符串值 |
get key | 获取字符串值 |
mset key1 value1 [key2 value2 ···] | 设置多个字符串键值 |
mget key1 [key2 ···] | 获取多个字符串值 |
incr key | 递增指定字符串所表示的数值,该字符串必须是整数 |
incrby key increment | 增加字符串数值指定值,原值和待加值都必须是整数 |
incrbyfloat key increment | 增加字符串数值指定的浮点值,原值和待加值都可以是整数,也可以是浮点数 |
decr key | 递减指定字符串所表示的数值,该字符串必须是整数 |
decrby key decrement | 减少字符串数值指定值,原值和待加值都必须是整数 |
append key value | 追加字符串 |
strlen key | 获取字符串长度 |
setbit key offset value | 设置指定字符串二进制偏移位置的二进制值,偏移位置超出范围,中间位默认为 0 |
getbit key offset | 获取指定字符串二进制偏移位置的二进制值 |
bitcount key [start end] | 统计字符串中二进制位为 1 的位的个数,限定的字节范围包含两端 |
bittop operation destkey key1 [key2 ···] | 进行 and、or、xor、not 位运算 |
命令 | 说明 |
---|---|
hset key field1 value1 [field2 value2 ···] | 设置散列表中指定字段的值 |
hget key field | 获取散列表中指定字段的值 |
hmset key field1 value1 [field2 value2 ···] | 设置哈希表 |
hmget key field1 [field2 ···] | 获取散列表中的多个字段的值 |
hgetall key | 获取散列表所有字段和相应值 |
hexists key field1 | 判断散列表中是否存在指定的字段 |
hsetnx key field value | 如果散列表中不存在指定的字段,则进行设置,否则不执行任何操作 |
hincrby key field increment | 增加散列表中指定字段指定的整数 |
hdel key field1 [field2 ···] | 删除散列表中指定的字段 |
hkeys key | 获取指定散列表中的所有字段 |
hvals key | 获取指定散列表中的所有字段值 |
hlen key | 获取指定散列表中字段的个数 |
命令 | 说明 |
---|---|
lpush key element1 [element2 ···] | 从左侧向列表中添加元素 |
lpop key | 从列表左侧移除一个元素,并返回该值 |
rpush key element1 [element2 ···] | 从右侧向列表中添加元素 |
rpop key | 从列表右侧移除一个元素,并返回该值 |
lindex key index | 获取指定列表指定索引位置的值,左边索引从 0 开始计数,右边索引从 -1 开始计数 |
lset key index element | 设置列表中指定位置的值,从0开始计算,若超出集合范围,则报错 |
llen key | 返回列表元素个数 |
lrange key start stop | 获取列表中指定范围的值,负数表示从右起第几个值,start 和 stop 的值可以为正或负,但 start 的索引位置总是应在 stop 的索引位置的左侧,否则返回为空,如 list 列表有 3 个元素,那么 lrange list 0 -1 和 lrange list -3 2 返回是相同的,而 lrange list -1 0 则返回空 |
lrem key count value | 删除指定个数个指定的值,如果指定的个数为负,表示从队列右侧开始删除,如果指定为 0 个,则删除所有指定的值 |
ltrim key start end | 删除指定列表中索引范围外的元素,范围确定方法通 lrange 一样 |
linsert key before|after pivot element | 向指定列表中的指定值之前或之后插入一个值,pivot 的查找从左侧开始 |
rpoplpush source destination | 从 source 列表中右侧的第一个元素弹出,并加入到 destination 列表的左侧,如果两个列表相同,那么则构成了一个循环队列 |
命令 | 说明 |
---|---|
sadd key member1 [member2 ···] | 向集合中添加元素,元素是无序的 |
srem key member1 [member2 ···] | 移除集合中的元素,返回 1 或 0,表示删除是否成功 |
spop key [count] | 弹出集合中指定个数个元素,返回弹出的元素集合 |
smembers key | 获取集合元素 |
sismember key member | 判断集合中是否存在指定元素,存在返回 1 ,否则返回 0 |
sdiff key1 [key2 key3 ···] | 差集运算 |
sinter key1 [key2 key3 ···] | 交集运算 |
sunion key1 [key2 key3 ···] | 并集运算 |
sdiffstore destination key1 [key2 key3 ···] | 差集运算,并保存结果 |
sinterstore destination key1 [key2 key3 ···] | 交集运算,并保存结果 |
sunionstore destination key1 [key2 key3 ···] | 并集运算,并保存结果 |
scard key | 获取集合数量 |
srandmember key [count] | 获取集合中的随机值,如果 count 为正值且超出集合元素个数,则返回所有元素。如果 count 为负值,则返回的随机值可能重复,并且数量为 count 的绝对值 |
命令 | 说明 |
---|---|
zadd key score1 member1 [score2 member2 ···] | 向有序集合中添加元素及其相关联的排序分数,分数值支持整型和浮点型,且 +inf 和 -inf 分别代表正无穷和负无穷 |
zscore key member | 获取有序集合中指定元素的分数 |
zrange key start stop [withscores] | 按升序获取指定排序范围内的集合元素,指定范围的值为负表示从排序后的尾部开始确定位置 |
zrevrange key start stop [withscores] | 按降序获取指定排序范围内的集合元素,withscores 返回时包含分数 |
zrangebyscore key min max [withscores] [limit offset count] | 通过分数来获取集合元素,按分数升序排列后,返回分数在指定范围内的元素,分数包含两端,limit offset count 对于符合条件的元素,先偏移指定 offset 个元素,再返回指定的 count 个元素 |
zrevrangebyscore ke max min [withscores] [limit offset count] | 通过分数来获取集合元素,同 zrangebyscore 类似,只是排序时按降序排列 |
zincrby key increment member | 为指定集合元素加分 |
zcard key | 获取集合中元素个数 |
zcount key min max | 获取指定分数范围内元素个数,包含分数两端 |
zrem key member1 [member2 ···] | 删除一个或多个集合中的元素 |
zremrangebyrank key start stop | 删除排序后指定范围的元素 |
zremrangebyscore key min max | 删除在指定分数范围中的元素,默认包含两端,可以添加 ( 括号表示不包含 |
zrank key member | 获取按升序排序的元素的排名,排名从 0 开始计 |
zrevrank key member | 获取按降序排序的元素的排名,排名从 0 开始计 |
zinterstore destination numkeys key1 [key2 ···] [weights weight1 [weight2 ···]] [aggregate sum|min|max] | 交集运算,保存的运算结果的元素的分数的计算方式由 aggregate 决定,并且分数在计数时需要乘以设置的权重 weight |
zunionstore destination numkeys key1 [key2 ···] [weights weight1 [weight2 ···]] [aggregate sum|min|max] | 并集运算,指令用法同 zinterstore 一样 |
转载地址:http://dtdws.baihongyu.com/