------------------- Redis订阅和发布模式-------------------
1,概念
Redis发布订阅发布/订阅)是一种消息通信模式:
发送者(酒馆)发送消息,
订阅者(子)接收消息。
Redis的客户端可以订阅任意数量的频道。
2,订阅频道:订阅个指定频道的信息
3,发布频道消息:将信息消息发送到指定的频道频道
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的的最小执行单位,一个事务中的命令要么都执行,要么都不执行。
2,事务的两种属性
1,事务是一个单独的隔离操作:事务中的所有命令都会序列化,按顺序的执行事务在执行的过程中,不会被其他客户端发送过来的命令请求所打断
。2,redis事务是原子。原子意味着要什么所有的命令都执行,要么都不执行。
3,事务从开始到执行经历的三个阶段
1,开始事务:多
>多 - 确定
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]
1,概念
Redis发布订阅发布/订阅)是一种消息通信模式:
发送者(酒馆)发送消息,
订阅者(子)接收消息。
Redis的客户端可以订阅任意数量的频道。
2,订阅频道:订阅个指定频道的信息
3,发布频道消息:将信息消息发送到指定的频道频道
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的的最小执行单位,一个事务中的命令要么都执行,要么都不执行。
2,事务的两种属性
1,事务是一个单独的隔离操作:事务中的所有命令都会序列化,按顺序的执行事务在执行的过程中,不会被其他客户端发送过来的命令请求所打断
。2,redis事务是原子。原子意味着要什么所有的命令都执行,要么都不执行。
3,事务从开始到执行经历的三个阶段
1,开始事务:多
>多 - 确定
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]