本文实例总结了redis操作。分享给大家供大家参考,具体以下:
相关内容:
虽然有参考文档,而且记忆太多也是耗脑,但学习的时候或者想要有个系统划分开知识点的文档,即便不要求去细致记忆,但划分开知识块后头脑里的印象才会更清晰,所以就有了这个博文。
主要是将各种命令进行划分成区别的功能归属
- redis的介绍:
- 客户端连接操作
- 服务端操作
- string操作
- hash操作
- list操作
- set操作
- sort set操作
- key操作
- 发布\定阅
- 事务
参考:w3school
首发时间:2018-03⑴0 15:36
Redis的介绍:
- Redis是一种非关系型数据库 ,是一个高性能的key-value数据库 ,设置的值也是以键值对存在的
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
- Redis不单单支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis还支持数据备份
- Redis的所有操作都是原子性的
- Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted
set:有序集合)。
客户端连接操作:
-
启动redis客户端连接:
- redis-cli [-h host] [-p port] [-a password ]
- host是服务端IP
- port是服务端端口
- password是连接密码
- 端口port 默许是6379
- redis-cli [-h host] [-p port] [-a password ]
-
断开连接: quit
-
客户端连接测试:
- auth:如果设置了密码,但连接的时候没有使用-a password,那末可以在连接完成后使用auth password来解锁,解锁以后才能使用其他 Redis 命令
- echo message:打印一个特定的信息 message ,测试时使用。
- ping [message]:使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG 。通经常使用于测试与服务器的连接会不会依然生效,或用于丈量延迟值。如果设置了message,那末返回值为message。
切换数据库
- select index:切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。默许使用 0 号数据库。可以从标识看出当前是哪一个数据库。
服务端操作:
-
数据持久化:
-
snapshot快照持久化:保存的是所有数据,默许情况下,自动履行快照持久化,保存文件为.rbd
- 怎样打开snapshot记录功能:
- 默许打开的
- 怎样使用:
- 使用save:SAVE 命令履行一个同步保存操作,将当前 Redis 实例的所有数据快照(snapshot)以 RDB 文件的情势保存到硬盘。一般来讲,在生产环境很少履行 SAVE 操作,由于它会阻塞所有客户端,保存数据库的任务通常由BGSAVE 命令异步地履行。但是,如果负责保存数据的后台子进程不幸出现问题时, SAVE 可以作为保存数据的最后手段来使用。
- 使用bgsave:与save区别的是会在后台进行备份,不会梗塞当前所有客户端。
- 如何恢复数据: 使用snapshot方式保存会有一个.rbd文件(config get dbfilename可获知是哪一个文件),保存终了后将这个文件复制到外面一份,当需要恢复的时候,关闭redis服务,将.rbd复制回来覆盖,重启redis服务便可
- 怎样打开snapshot记录功能:
-
-
AOF日志记录型持久化:保存的是操作日志
- 怎样打开aof记录功能: config set appendonly “yes”
- 怎样使用: 开启aof功能后,会自动记录履行的命令
- 如何恢复:与rdb恢复数据方式相同,会有一个.aof文件(config get appendfilename可获知是哪一个文件,如果不行就看配置文件),保存终了后将这个文件复制到外面一份,当需要恢复的时候,关闭redis服务,将.aof复制回来覆盖,重启redis服务便可
- 如果rdb文件,和aof文件都存在,优先用“AOF”来恢复数据【这个要谨慎使用,有可能由于这个而产生”删库“】
- 恢复时rdb和aof,rdb恢复的快
-
客户端管理:
-
断开客户端:CLIENT KILL ip:port 【关闭地址为 ip:port 的客户端。】
-
设置客户端名称:CLIENT SETNAME connection-name 【为当前连接分配一个名字。】
-
获得客户端名称:CLIENT GETNAME 【返回 CLIENT SETNAME 命令为连接设置的名字。创建的连接默许是没着名字的】
-
获得客户端连接信息:CLIENT LIST 【返回所有连接到服务器的客户端信息和统计数据。】
-
-
服务端配置管理:
-
获得配置:config get config_setting_name【config_setting_name是配置项名】
-
设置新配置:config set config_setting_name new_config_value 【new_config_value是新的配置值】
-
-
数据管理:
-
清空所有数据:flushall
-
清空当前数据库中的所有 key:flushdb
-
-
其他:
-
获得时间:time 【返回当前服务器时间。第一个字符串是当前时间(以 UNIX 时间戳格式表示),而第二个字符串是当前这一秒钟已逝去的微秒数。】
-
String操作:
String是字符串的意思,在redis中就是表示“设置变量的值为一个字符串”
设置string:
- set key value [EX seconds] [PX milliseconds] [NX|XX] :设置键值对,不管key会不会存在,存在则覆盖
- key:就是设置的键名
- value:对应的键的值,默许为字符串,可以加双引号,也能够不加
- ex:设置键的过期时间为 seconds 秒
- px:与ex区别的是代表多少毫秒失效
- nx:只在键不存在时,才对键进行设置操作 【当使用setnx设置值时默许有nx】
- xx:只在键已存在时,才对键进行设置操作
- setnx key value :只有在 key 不存在时设置 键值对
- setex key seconds value:设置键值对的过期时间为seconds 秒
- setbit key offset value: 设置对应二进制的offset位为value【每一个字符占八位,从高位到低位为0⑺】
- setrange key offset value :用 value 参数覆盖给定 key 所贮存的字符串值,从偏移量 offset 开始。
- mset key value [key value …]:同时设置一个或多个 key‐value 对。
- msetnx key value [key value …]:当所有键都不存在时,同时设置一个或多个 key‐value 对。只要一个给定 key 已存在, 全部设置操作都会取消(原子性)
- append key value:如果 key 已存在并且是一个字符串, append命令将 value 追加到 key 原来的值的末尾。如果 key 不存在, append就简单地将给定 key 设为 value ,就像履行 SET key value 一样。 如果key不是一个字符串,将报错。
- set key value [EX seconds] [PX milliseconds] [NX|XX] :设置键值对,不管key会不会存在,存在则覆盖
-
获得string:
- get key :获得对应键的键值
- mget key [key …]:获得多个键的值
- getrange key start end:返回 key 中字符串值的子字符串,字符串的截取范围为[start , end]
- getset key newvalue:返回key的值,并设置key的值为newvalue
- getbit key offset: 获得字符串所代表的二进制位的offset数值
- strlen key :获得key对应字符串的长度
- bitcount key [start end]:对应对应字符串的二进制中为1的数量
-
其他操作:
- decr key: 当字符串为数字时,将 key 中贮存的数字值减一,其余时报错。如果 key 不存在,那末 key 的值会先被初始化为 0 ,然后再履行 decr 操作。
- decrby key decrement:与decr key区别的是指定减少数量为decrement。如果 key 不存在,那末 key 的值会先被初始化为 0 ,然后再履行 decrby 操作。
- incr key:当字符串为数字时,将 key 中贮存的数字值增一,其余时报错。如果 key 不存在,那末 key 的值会先被初始化为 0 ,然后再履行 incr操作。
- incrby key increment:当字符串为数字时,将 key 所贮存的值加上增量 increment 。如果 key 不存在,那末 key 的值会先被初始化为 0 ,然后再履行incrby 命令。
- incrbyfloat key increment:与incrby key increment区别的是,增长的值为浮点数。
- bitop operation destkey key [key …]: 对一个或多个保存二进制位的字符串或十六进制字符串或普通字符串 key 进行位元操作,并将结果保存到 destkey 上。
- operation可以是and,or,not,xor(异或)
- 当 bitop 处理区别长度的字符串时,较短的那个字符串所缺少的部份会被看做 0 。空的 key 也被看做是包括 0 的字符串序列
补充:
- m前缀的操作是具有原子性的,只有一个失败就报错,比如mset设置多个值,只要一个设置失败,那末就会报错,并全部设置失败。
- 并且redis是有数据类型的,操作会检测数据类型,除去一些能“覆盖”原变量,疏忽原变量类型的操作,其他操作遇到不符合的类型都会报错
Hash操作:
redis中的hash相当于key只是一个索引值,指向一个哈希表,它的值是一个域值对(field-value)区域
-
设置hash:
- hset key field value:将哈希表 key 中的域 field 的值设为 value 。如果 key 不存在,一个新的哈希表被创建并进行hset操作。如果域 field 已存在于哈希表中,旧值将被覆盖。
- hsetnx key field value:将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在。
- hmset key field value [field value …]:同时将多个 field‐value (域-值)对设置到哈希表 key 中。
-
获得hash:
- hget key field:获得哈希表中的field的值,只返回值value
- hgetall key:获得哈希表中的所有field的值,返回值中,奇数行动field,偶数行动value
- hmget key field [field…]:返回哈希表 key 中,一个或多个给定域的值,只返回值value
- hvals key:获得哈希表中的所有field的值,只返回value
- hkeys key:获得哈希表中的所有field,只返回field
- hscan key cursor [MATCH pattern] [COUNT count]:用于增量地迭代hash
- cursor是 迭代的开始索引,第一次为0,迭代中第一行返回值为下一次继续迭代的索引,如果为0代表迭代终了
- Match pattenrn是 匹配field的模式 ,不是value也不是key!!
- count count是此次迭代的数量
- hlen key:返回哈希表 key 中域的数量。
- hexists key field:查看哈希表 key 中,给定域 field 会不会存在。
-
其他操作:
- hdel key field [field …]:删除哈希表 key 中的一个或多个指定域,不存在的域将被疏忽。
- hincrby key field increment:如果哈希表中对应的field为数字,那末为哈希表 key 中的域 field 的值加上增量 increment 。如果 key 不存在,一个新的哈希表被创建并履行 HINCRBY 命令。如果域 field 不存在,那末在履行命令前,域的值被初始化为 0 。【注,increment可以为负数,所以没有hdecr】
- hincrbyfloat key field increment:如果哈希表中对应的field为数字,那末为哈希表 key 中的域 field 的值加上浮点数增量 increment 。如果 key 不存在,一个新的哈希表被创建并履行 HINCRBY 命令。如果域 field 不存在,那末在履行命令前,域的值被初始化为 0 。【注,值和增量可以为指数符号如5.0e3】
List操作:
代表key的值为一个列表,可以有多个元素
List中左侧为头,右侧为尾
-
设置list:
- lpush key value [value …] : 将一个或多个值 value 插入到列表 key 的表头,多个值插入时,后面插入的值在表头,也就是说会从左侧把一个个值往右侧压,最后面的值作为表头。
- rpush key value [value …] :将一个或多个值 value 插入到列表 key 的表尾(最右侧)。多个值插入时,最后面的的值作为表尾。
- rpushx key value :将值 value 插入到列表 key 的表尾,当且仅当 key 存在并且是一个列表,否则不履行任何操作。
- lrange key start stop : 返回列表 key 中指定区间[start,stop](这是一个[闭区间])内的元素。可以用⑴来代表最后一个元素
- lset key index value : 将列表 key 下标为 index 的元素的值设置为 value 。当 index 参数超越范围,或对一个空列表( key 不存在)进行 LSET 时,返回一个毛病。
- linsert key before|after pivot value : 将值 value 插入到列表 key 当中,位于值 pivot (注意pivot是一个值value) 之前(before)或以后(after)。当 pivot 不存在于列表 key 时,不履行任何操作。当 key 不存在时, key 被视为空列表,不履行任何操作。如果 key 不是列表类型,返回一个毛病。
-
获得list:
- lpop key : 移除并返回列表 key 的头元素
- rpop key : 移除并返回列表 key 的尾元素。
- blpop : 是 LPOP 命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将被 BLPOP 命令阻塞,直到等待超时或发现可弹出元素为止(可使用另外一个客户端来添加元素)。当给定多个 key 参数时,按参数 key 的前后顺序顺次检查各个列表,弹出第一个非空列表的头元素。
- brpop : 是 RPOP 命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将被 BRPOP 命令阻塞,直到等待超时或发现可弹出元素为止(可使用另外一个客户端来添加元素)。当给定多个 key 参数时,按参数 key 的前后顺序顺次检查各个列表,弹出第一个非空列表的尾元素。
- rpoplpush source destination : 将source的尾元素取出来放到destination的表头
- lindex key index : 返回列表 key 中,下标为 index 的元素。如果 key 不是列表类型,返回一个毛病。
- llen key : 返回列表 key 的长度。如果 key 不存在,则 key 被解释为一个空列表,返回 0 .如果 key 不是列表类型,返回一个毛病。
-
其他操作:
- ltrim key start stop : 对一个列表进行修剪(trim),就是说,让列表只保存指定区间内(为闭区间)的元素,不在指定区间以内的元素都将被删除。
补充:
- m前缀的操作是具有原子性的,只有一个失败就报错,比如mset设置多个值,只要一个设置失败,那末就会报错,并全部设置失败。
- 并且redis是有数据类型的,操作会检测数据类型,除去一些能“覆盖”原变量,疏忽原变量类型的操作,其他操作遇到不符合的类型都会报错
Set操作:
代表key的值为一个集合,集合中元素不可以重复
设置set:
- sadd key member [member …] : 将一个或多个 member 元素加入到集合 key 当中,已存在于集合的 member 元素将被疏忽。假设 key 不存在,则创建一个只包括 member 元素作成员的集合。当 key 不是集合类型时,返回一个毛病。
-
获得set:
- scard key : 返回集合的元素个数
-
spop key:移除并返回集合中的一个随机元素。
- smembers key :返回集合 key 中的所有成员。不存在的 key 被视为空集合。
- srandmember key [count] : 如果命令履行时,只提供了 key 参数,那末返回集合中的count个随机元素。
-
如果 count 为正数,且小于集合基数,那末命令返回一个包括 count 个元素的数组,数组中的元
素各不相同。如果 count 大于等于集合基数,那末返回全部集合。
如果 count 为负数,那末命令返回一个数组,数组中的元素可能会重复出现屡次,而数组的长度
为 count 的绝对值。
-
其他操作:
- sscan key cursor [MATCH pattern] [COUNT count]: 用于增量地迭代set
- cursor是 迭代的开始索引,第一次为0,迭代中第一行返回值为下一次继续迭代的索引,如果为0代表迭代终了
- Match pattenrn是 匹配set中元素的模式
- count count是此次迭代的数量
- smove source destination member:将 member 元素从 source 集合移动到 destination 集合。如果 source 集合不存在或不包括指定的 member 元素,则 SMOVE 命令不履行任何操作,仅返回 0 。否则, member 元素从 source 集合中被移除,并添加到 destination 集合中去。
- sdiff key [key …]:返回给定集合之间的差集
- sdiffstore destination key [key …]:返回给定集合之间的差集,并存储到destination中,如果 destination 集合已存在,则将其覆盖。destination 可以是 key 本身。
- sinter key [key …]:返回所有给定集合的交集
- sinter destination key [key …]:返回给定集合之间的交集,并存储到destination中,如果 destination 集合已存在,则将其覆盖。destination 可以是 key 本身。
- sismember key member:判断 member 元素会不会集合 key 的成员。
- srem key member [member …]:移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被疏忽。当 key 不是集合类型,返回一个毛病。
- sunion key [key…] :返回所有给定集合的并集。不存在的 key 被视为空集。
- sunionstore destination key [key…] :返回所有给定集合的并集,不存在的 key 被视为空集,将返回的结果保存到 destination 集合.如果 destination 已存在,则将其覆盖。destination 可以是 key 本身。
- sscan key cursor [MATCH pattern] [COUNT count]: 用于增量地迭代set
补充:
redis是有数据类型的,操作会检测数据类型,除去一些能“覆盖”原变量,疏忽原变量类型的操作,其他操作遇到不符合的类型都会报错
Sort Set操作:
Sort set代表是一个有序集合,score决定着元素的顺序,一般score小的在前面
-
设置sort set:
- zadd key [NX|XX] [CH] [INCR] score member [score member …]: 将一个或多个 member 元素及其 score 值加入到有序集 key 当中。
- scrore是元素的权重,决定着元素的顺序
- nx:是member不存在才添加,已存在则不作操作
- xx:是member已存在才添加
- ch:修改返回值为产生变化的成员总数,原始是返回新添加成员的总数
- incr:当
ZADD
指定这个选项时,成员的操作就同等zincrby命令,可以对已有成员的分数进行增加操作。
- zadd key [NX|XX] [CH] [INCR] score member [score member …]: 将一个或多个 member 元素及其 score 值加入到有序集 key 当中。
-
获得sort set:
- zrange key start stop [WITHSCORES] :返回有序集 key 中,指定区间内的成员。其中成员的位置按 score 值递增(从小到大)来排序。
- withscores代表会不会同时返回score
- zrangebyscore key min max [WITHSCORES] [LIMIT offset count]:返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按score 值递增(从小到大)次序排列。
- zrevrange key start stop [WITHSCORES]:返回有序集 key 中,指定区间内的成员。
- ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]:返回有序集 key 中, score 值介于 max 和 min 之间(默许包括等于 max 或 min )的所有的成员。有序集成员按 score 值递减(从大到小)的次序排列。
- zrank key member:返回有序集 key 中成员 member 的排名。
- zcard key:返回有序集合的元素个数
- zscore key member:返回有序集 key 中,成员 member 的 score 值。如果 member 元素不是有序集 key 的成员,或 key 不存在,返回 nil 。
-
zrevrank key member:返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递减(从大到小)排序。排名以 0 为底,也就是说, score 值最大的成员排名为 0 。
-
zcount key min max:返回有序集 key 中, score 值在[min,max]之间的成员的数量。
- zrange key start stop [WITHSCORES] :返回有序集 key 中,指定区间内的成员。其中成员的位置按 score 值递增(从小到大)来排序。
-
其他操作:
- zrem key member [member …]:移除有序集 key 中的一个或多个成员,不存在的成员将被疏忽。当 key 存在但不是有序集类型时,返回一个毛病。
- zincrby key increment member:为有序集 key 的成员 member 的 score 值加上增量 increment 。可以通过传递一个负数值 increment ,让 score 减去相应的值,比如 ZINCRBY key ‐5 member ,就是让member 的 score 值减去 5 。当 key 不存在,或 member 不是 key 的成员时, ZINCRBY key increment member 同等于ZADD key increment member 。当 key 不是有序集类型时,返回一个毛病。score 值可以是整数值或双精度浮点数。
- ZREMRANGEBYRANK key start stop:移除有序集 key 中,指定排名(rank)区间内的所有成员。区间分别以下标参数 start 和 stop 指出,包括 start 和 stop 在内。下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。你也能够使用负数下标,以 ‐1 表示最后一个成员, ‐2 表示倒数第二个成员,以此类推。
- ZREMRANGEBYSCORE key min max:移除有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。
- zunionstore destination numkeys key [key …] [weights weight [weight …]][AGGREGATE SUM|MIN|MAX]:计算给定的一个或多个有序集的并集,其中给定 key 的数量一定要以 numkeys 参数指定,并将该并集(结果集)贮存到 destination 。默许情况下,结果集中某个成员的 score 值是所有给定集下该成员 score 值之 和 。
- zinterstore destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]:计算给定的一个或多个有序集的交集,其中给定 key 的数量一定要以 numkeys 参数指定,并将该交集(结果集)贮存到 destination 。默许情况下,结果集中某个成员的 score 值是所有给定集下该成员 score 值之和.
- zscan key cursor [MATCH pattern] [COUNT count]:
- cursor是 迭代的开始索引,第一次为0,迭代中第一行返回值为下一次继续迭代的索引,如果为0代表迭代终了
- Match pattenrn是 匹配sort set中元素的模式
- count count是此次迭代的数量
key操作:
-
查询键:
-
exists key:检测键会不会存在
-
type key:检测键对应的值的类型
-
keys pattern:查找所有符合给定模式 pattern 的 key 。比如 keys *代表获得所有键
-
ttl key:以秒为单位,返回给定 key 的剩余生存时间
-
PTTL key:以毫秒为单位返回 key 的剩余生存时间
-
RANDOMKEY:从当前数据库中随机返回(不删除)一个 key 。
-
-
删除键:
- del key:当键存在时,删除键
-
键的排序:
- sort key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern …]] [ASC | DESC]
[ALPHA] [STORE destination]:返回或保存给定列表、集合、有序集合 key 中经过排序的元素。排序默许以数字作为对象,值被解释为双精度浮点数,然落后行比较。
- sort key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern …]] [ASC | DESC]
-
键的设置:
- EXPIRE key seconds:为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。
- EXPIREAT key timestamp:EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置生存时间。区别在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。
- PEXPIREAT key milliseconds-timestamp:它以毫秒为单位设置 key 的过期 unix 时间戳
- RENAME key newkey:将 key 改名为 newkey 。当 key 和 newkey 相同,或 key 不存在时,返回一个毛病。当 newkey 已存在时, RENAME 命令将覆盖旧值。
- RENAMENX key newkey:当且仅当 newkey 不存在时,将 key 改名为 newkey 。当 key 不存在时,返回一个毛病。
- DUMP key:序列化给定 key ,并返回被序列化的值,使用 restore 命令可以将这个值反序列化为 Redis 键。序列化生成的值有以下几个特点:它带有 64 位的校验和,用于检测毛病, RESTORE 在进行反序列化之前会先检查校验和。值的编码格式和 RDB 文件保持一致。RDB 版本会被编码在序列化值当中,如果由于 Redis 的版本区别造成 RDB 格式不兼容,那末Redis 会谢绝对这个值进行反序列化操作。序列化的值不包括任何生存时间信息。
- restore key ttl serialized-value [REPLACE]:反序列化给定的序列化值,并将它和给定的 key 关联。参数 ttl 以毫秒为单位为 key 设置生存时间;如果 ttl 为 0 ,那末不设置生存时间。RESTORE 在履行反序列化之前会先对序列化值的 RDB 版本和数据校验和进行检查,如果 RDB 版本不相同或数据不完全的话,那末 RESTORE 会谢绝进行反序列化,并返回一个毛病。如果键 key 已存在, 并且给定了 REPLACE 选项, 那末使用反序列化得出的值来代替键 key 原本的值; 相反地, 如果键 key 已存在, 但是没有给定 REPLACE 选项, 那末命令返回一个毛病。
- PERSIST key:移除给定 key 的生存时间
-
键的移动:
- migrate host port key destination-db timeout [COPY] [REPLACE]:将 key 原子性地从当前实例传送到目标实例的指定数据库上,一旦传送成功, key 保证会出现在目标实例上,而当前实例上的 key 会被删除。这个命令是一个原子操作,它在履行的时候会阻塞进行迁移的两个实例,直到以下任意结果产生:迁移成功,迁移失败,等到超时。
- move key db:将当前数据库的 key 移动到给定的数据库 db 当中。如果当前数据库(源数据库)和给定数据库(目标数据库)有相同名字的给定 key ,或 key 不存在于当前数据库,那末 MOVE 没有任何效果
发布/定阅:
定阅可使多个客户端等待同一信息,发布可使服务端向多个特定客户端发送信息
- 就像收音机一样,只要收音机调到指定的频道channel,就能够收听到电台的信息
- 而电台可以向所有收听它的收音机发送信息
- 新的用户,不会收听到之前的消息
-
定阅频道:
- psubscirbe pattern [pattern …]:客户端定阅一个或多个符合给定模式的频道
- subscirbe channel [channel …]:定阅给定的一个或多个频道的信息。
- 【上述两个的区分就是pattern可以模式匹配】
-
发送消息:
- publish channel message:将信息 message 发送到指定的频道 channel 。返回值是收到message的定阅者数量
-
退订频道:
- unpsubscirbe [channel [channel …]]:唆使客户端退订给定的频道。
- punsubscirbe [pattern [pattern …]]:唆使客户端退订所有给定模式。
- 【上述两个的区分就是pattern可以模式匹配】
-
频道查询:
-
pubsub numpat:客户端定阅的所有模式的数量总和。
-
pubsub channels [pattern]:列出当前的活跃频道。活跃频道指的是那些最少有一个定阅者的频道, 定阅模式的客户端不计算在内。
-
pubsub numsub [channel⑴ … channel-N]:返回给定频道的定阅者数量, 定阅模式的客户端不计算在内。
-
事务
-
开启事务:
- multi:标记一个事务块的开始。事务块内的多条命令会依照前后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地履行。
-
监控:
- watch key [key …]:监视一个(或多个) key ,如果在事务履行exec之前这个(或这些) key 被其他命令所改动,那末事务将被打断。
- unwatch:取消 WATCH 命令对所有 key 的监视。
-
履行事务块:
- exec:履行所有事务块内的命令。
-
取消事务:
- discard:取消事务,放弃履行事务块内的所有命令。同时也会取消watch对所有key的监视
想知道更多,请参考官方文档:https://redis.io/commands 中文文档:http://www.redis.cn/documentation.html
希望本文所述对大家Redis数据库程序设计有所帮助。
本文来源:https://www.yuntue.com/post/235591.html | 云服务器网,转载请注明出处!