------------------- Redis订阅和发布模式-------------------
1,概念
Redis发布订阅发布/订阅)是一种消息通讯模式:
发送者(酒馆)发送消息,
订阅者(子)接收消息。
Redis的客户端能够订阅任意数量的频道。redis
2,订阅频道:订阅个指定频道的信息微信
3,发布频道消息:将信息消息发送到指定的频道频道ide
4,应用场景
1,今日头条订阅号,×××系统
2,即便通讯系统
3中,群聊部落系统(微信群)测试
5,测试实践:微信班级群class:20170101
1,学生C
订阅一个主题叫:class:20170101 > subscribe class:20170101
2,学生A针对class:20170101主体发送消息,那么全部订阅该主题的用户都可以接收到该数据。
>出版类:20170101! “世界你好我是”
3,学生乙针对等级:20170101主体发送消息,那么全部订阅该主题的用户都可以接收到该数据
>出版类:20170101“你好我是B“
展现学生C接受到的A \ B同窗发送过来的消息信息
1)”subscribe“
2)”class:20170101“
3)(integer)1
1)”message“
2)”class:20170101 “
3)”hello world!I am a“
1)”message“
2)”class:20170101“
3)”hello word!I am B“事务
------------------- Redis事务-------------------
1,概念:
redis中的事务是一组命令的集合。事务同命令同样都是Redis的的最小执行单位,一个事务中的命令要么都执行,要么都不执行。get
2,事务的两种属性
1,事务是一个单独的隔离操做:事务中的全部命令都会序列化,按顺序的执行事务在执行的过程当中,不会被其余客户端发送过来的命令请求所打断
。2,redis事务是原子。原子意味着要什么全部的命令都执行,要么都不执行。it
3,事务从开始到执行经历的三个阶段
1,开始事务:多
>多 - 肯定class
2,命令入队
> set“strOne”“hello”
>设置“strTwo”“world”
>设置“strThree”“!”监控
3,执行事务:exec
> exec序列化
4,事务执行是常见错误:
1,语法错误:语法错误指令不存在或命令参数的个数不对
。2,运行错误:运行错误指令执行时出现的错误,好比使用散列类型的命令操做集合类型的键,这种错误在实际执行以前的Redis是没法发现的,因此在事务里这样的命令是会被Redis的接受并执行的。若是事务里的一条命令出现了运行错误,事务里其余的命令依然会继续执行
> multi
> set key 1
> sadd key 2
> set key 3
> exec
1)OK
2)(错误)WRONGTYPE针对保存错误类型值的键的操做
3)OK
> get key --- “3”
5,观看命令:能够监控一个或多个键,一旦其中一个键被修改(或删除),以后的事务就不会执行监控一直持续到EXEC命令(事务中的命令是在EXEC以后才执行的,因此在多命令后能够修改watch监控的键值)
> set key 1 --- OK
> watch key --- OK
> set key 2 --- OK
> multi --- OK
> set key 3 --- QUEUED
> exec ---(nil)
>得到密钥---“2”
def incr($ key): watch $ key $ value = GET $ key 若是不是$ value: $ value = 0 $ value = $ value + 1 MULTI SET $ key,$ value resule = EXEC return resule [0]