Ubuntu命令
sudo apt-get install redis-server
ubuntu通过上面命令安装完redis,会自动启动redis服务,通过ps命令确认:
可以看到redis默认工作在本地主机的6379端口上。
启动Redis客户端
详细的Redis安装见我的Redis专栏
redis发布-订阅相关命令
redis首先是一个强大的缓存服务器,比memcache强大很多,不仅仅支持多种数据结构(不像memcache只能存储字符串)如字符串、list列表、set集合、map映射表等结构,还可以支持数据的持久化存储(memcache只支持内存存储),经常被应用到高并发的服务器环境设计之中。
启动redis-cli客户端,连接redis server体验一下数据缓存功能,如下:
redis存储普通key-value:
redis列表操作:
redis甚至还可以支持阻塞式的key读取,用BRPOP命令,如下
redis的发布-订阅机制:发布-订阅模式包含了两种角色,分别是消息的发布者和消息的订阅者。订阅者可以订阅一个或者多个频道channel,发布者可以向指定的频道channel发送消息,所有订阅此频道的订阅者都会收到此消息。订阅频道的命令是 subscribe,可以同时订阅多个频道,用法是 subscribe channel1 [channel2 …],如下:
执行上面命令客户端会进入订阅状态,处于此状态下客户端不能使用除subscribe、unsubscribe、psubscribe和punsubscribe这四个属于"发布/订阅"之外的命令,否则会报错。打开另一个redis-cli客户端,给"zhang san"频道发布消息,如下:
第一个redis-cli客户端接收到"zhang san"频道的消息,如下:
进入订阅状态后客户端可能收到3种类型的回复。每种类型的回复都包含3个值,第一个值是消息的类型,根据消类型的不同,第二个和第三个参数的含义可能不同。消息类型的取值可能是以下3个:
- subscribe:表示订阅成功的反馈信息。第二个值是订阅成功的频道名称,第三个是当前客户端订阅的频道数量。
- message:表示接收到的消息,第二个值表示产生消息的频道名称,第三个值是消息的内容。
- unsubscribe:表示成功取消订阅某个频道。第二个值是对应的频道名称,第三个值是当前客户端订阅的频道数量,当此值为0时客户端会退出订阅状态,之后就可以执行其他非"发布/订阅"模式的命令了。