Redis 简介一

Redis 简介

Redis 是一个开源的高性能键值对内存数据库。其所有的数据都保存在内存中,所以相比于其他基于硬盘存储的数据库有着非常快的读写速度,而其对持久化的支持,也减小了数据丢失的风险。

随着 Redis 功能的不断丰富,其也不在局限于数据库系统,如为每个键设置生存时间(Time to Live,TTL),则可以将其作为缓存系统来使用。

一个 Redis 实例中的所有键值对并不是一个整体,其默认分为 16 个“区”,以 0 到 15 的数字命名,使用 select <index> 命令,可以选择使用指定的区保存键值对。

Remote Dictionary Server,远程字典服务器,存储键值对,键名是字符串类型,而键值可以是字符串、散列表、列表、有序或无序集合。

Redis 中的命令都是原子性的,如 incr 命令,不会因为多个客户端连接执行,而导致自增值异常。

redis 官网地址:https://redis.io/

常用命令

命令说明
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 一样
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值