redis从入门到进阶——数据类型、 操作、数值操作、发布订阅、消息队列、布隆过滤器、事务

文章目录

基础

数据类型

string,set, hash, list, zset

操作

  1. string符串类型:
java 复制代码
保存一个字符串:set key value [EX seconds|PX milliseconds...] [NX|XX]
    EX:设置存活时间,秒为单位
    PX:设置存活时间,毫秒为单位
    NX:如果key不存在,则设置key value
    XX:如果key存在,则重新设置value
保存多个字符串:mset key value [key value...]
java 复制代码
获取值:get key
  1. hash散列:
java 复制代码
保存一个对象:hmset key field value [field value field value ...]
java 复制代码
获取对象单个属性值:hget key field
获取对象所有值:hgetall key
  1. list列表:
java 复制代码
添加元素:lpush key value [value ...]
从右侧尾部添加元素:rpush key value
在指定元素value前插入元素:linsert key before value value2
java 复制代码
获取元素:lrange key start end (0 3)
从左侧弹出元素:lpop key
从右侧弹出元素:rpop key
  1. set无序集合:单个添加得元素会无序排列
java 复制代码
添加元素:sadd key value [value...]
    
获取元素:smembers key
  1. zset有序集合:
java 复制代码
添加元素:zadd key score value
java 复制代码
获取分值:zscore key value
java 复制代码
获取元素:zrange key start end
命令 说明
SET key value 用于设定指定键的值。
GET key 用于检索指定键的值。
GETRANGE key start end 返回 key 中字符串值的子字符。
GETSET key value 将给定 key 的值设置为 value,并返回 key 的旧值。
GETBIT key offset 对 key 所存储的字符串值,获取其指定偏移量上的位(bit)。
[MGET key1 key2...] 批量获取一个或多个 key 所存储的值,减少网络耗时开销。
SETBIT key offset value 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
SETEX key seconds value 将值 value 存储到 key中 ,并将 key 的过期时间设为 seconds (以秒为单位)。
SETNX key value 当 key 不存在时设置 key 的值。
SETRANGE key offset value 从偏移量 offset 开始,使用指定的 value 覆盖的 key 所存储的部分字符串值。
STRLEN key 返回 key 所储存的字符串值的长度。
[MSET key value key value ...] 该命令允许同时设置多个键值对。
[MSETNX key value key value ...] 当指定的 key 都不存在时,用于设置多个键值对。
PSETEX key milliseconds value 此命令用于设置 key 的值和有过期时间(以毫秒为单位)。
INCR key 将 key 所存储的整数值加 1。
INCRBY key increment 将 key 所储存的值加上给定的递增值(increment)。
INCRBYFLOAT key increment 将 key 所储存的值加上指定的浮点递增值(increment)。
DECR key 将 key 所存储的整数值减 1。
DECRBY key decrement 将 key 所储存的值减去给定的递减值(decrement)。
APPEND key value 该命令将 value 追加到 key 所存储值的末尾。
命令 说明
[LPUSH key value1 value2] 在列表头部插入一个或者多个值。
LRANGE key start stop 获取列表指定范围内的元素。
RPUSH key value1 [value2] 在列表尾部添加一个或多个值。
LPUSHX key value 当储存列表的 key 存在时,用于将值插入到列表头部。
RPUSHX key value 当存储列表的 key 存在时,用于将值插入到列表的尾部。
LINDEX key index 通过索引获取列表中的元素。
LINSERT key before|after pivot value 指定列表中一个元素在它之前或之后插入另外一个元素。
LREM key count value 表示从列表中删除元素与 value 相等的元素。count 表示删除的数量,为 0 表示全部移除。
LSET key index value 表示通过其索引设置列表中元素的值。
LTRIM key start stop 保留列表中指定范围内的元素值。
LPOP key 从列表的头部弹出元素,默认为第一个元素。
RPOP key 从列表的尾部弹出元素,默认为最后一个元素。
LLEN key 用于获取列表的长度。
RPOPLPUSH source destination 用于删除列表中的最后一个元素,然后将该元素添加到另一个列表的头部,并返回该元素值。
[BLPOP key1 key2 ] timeout 用于删除并返回列表中的第一个元素(头部操作),如果列表中没有元素,就会发生阻塞, 直到列表等待超时或发现可弹出元素为止。
[BRPOP key1 key2 ] timeout 用于删除并返回列表中的最后一个元素(尾部操作),如果列表中没有元素,就会发生阻塞, 直到列表等待超时或发现可弹出元素为止。
BRPOPLPUSH source destination timeout 从列表中取出最后一个元素,并插入到另一个列表的头部。如果列表中没有元素,就会发生 阻塞,直到等待超时或发现可弹出元素时为止。
命令 说明
[HDEL key field2 field2] 用于删除一个或多个哈希表字段。
HEXISTS key field 用于确定哈希表字段是否存在。
HGET key field 获取 key 关联的哈希字段的值。
HGETALL key 获取 key 关联的所有哈希字段值。
HINCRBY key field increment 给 key 关联的哈希字段做整数增量运算 。
HINCRBYFLOAT key field increment 给 key 关联的哈希字段做浮点数增量运算 。
HKEYS key 获取 key 关联的所有字段和值。
HLEN key 获取 key 中的哈希表的字段数量。
HMSET key field1 value1 [field2 value2 ] 在哈希表中同时设置多个 field-value(字段-值)
HMGET key field1 [field2] 用于同时获取多个给定哈希字段(field)对应的值。
HSET key field value 用于设置指定 key 的哈希表字段和值(field/value)。
HSETNX key field value 仅当字段 field 不存在时,设置哈希表字段的值。
HVALS key 用于获取哈希表中的所有值。
HSCAN key cursor 迭代哈希表中的所有键值对,cursor 表示游标,默认为 0。

数值操作

INCR命令:

java 复制代码
如果key不存在就自动创建key,并将value初始化为1. incr key

DECR命令:与incr相反

java 复制代码
decr key

INCRBY命令:

java 复制代码
每次增加increment增量:incrby key increment

DECRBY命令:

java 复制代码
每次减少decrement减量:decrby key decrement

INCRBYFLOAT命令:

java 复制代码
可以操作浮点数得命令,浮点数可正可负从而实现对数值得增减:incrbyfloat key increment

进阶

发布订阅

subscribe订阅频道:

java 复制代码
订阅:subscribe key

publish发布消息:

java 复制代码
发布消息:publish key message
命令 说明
PSUBSCRIBE pattern [pattern ...] 订阅一个或多个符合指定模式的频道。
PUBSUB subcommand [argument [argument ...]] 查看发布/订阅系统状态,可选参数 1) channel 返回在线状态的频道。 2) numpat 返回指定模式的订阅者数量。 3) numsub 返回指定频道的订阅者数量。
PUBSUB subcommand [argument [argument ...]] 将信息发送到指定的频道。
PUNSUBSCRIBE [pattern [pattern ...]] 退订所有指定模式的频道。
SUBSCRIBE channel [channel ...] 订阅一个或者多个频道的消息。
UNSUBSCRIBE [channel [channel ...]] 退订指定的频道。

消息队列

布隆过滤器

http://c.biancheng.net/redis/bloom-filter.html

事务

命令 说明
MULTI 开启一个事务
EXEC 执行事务中的所有命令
WATCH key [key ...] 在开启事务之前用来监视一个或多个key 。如果事务执行时这些 key 被改动过,那么事务将被打断。
DISCARD 取消事务。
UNWATCH 取消 WATCH 命令对 key 的监控。
相关推荐
团儿.32 分钟前
解锁MySQL高可用新境界:深入探索MHA架构的无限魅力与实战部署
数据库·mysql·架构·mysql之mha架构
程序猿小D43 分钟前
第二百六十七节 JPA教程 - JPA查询AND条件示例
java·开发语言·前端·数据库·windows·python·jpa
权^1 小时前
MySQL--聚合查询、联合查询、子查询、合并查询(上万字超详解!!!)
大数据·数据库·学习·mysql
wclass-zhengge1 小时前
Redis篇(最佳实践)(持续更新迭代)
redis·缓存·bootstrap
Dylanioucn2 小时前
【分布式微服务云原生】探索Redis:数据结构的艺术与科学
数据结构·redis·分布式·缓存·中间件
Code成立2 小时前
1、深入理解Redis线程模型
数据库·redis·bootstrap
缘友一世4 小时前
macos安装mongodb
数据库·mongodb·macos
万事大吉CC5 小时前
mysql单表查询·3
数据库·mysql
bin91536 小时前
【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。
大数据·数据库·信息可视化·数据挖掘·数据分析·excel·数据可视化
Miqiuha6 小时前
lock_guard和unique_lock学习总结
java·数据库·学习