redis的启动方式
直接启动
进入redis根目录,执行命令:
加上‘&’号使redis以后台程序方式运行
通过指定配置文件启动
可以为redis服务启动指定配置文件,例如配置为/etc/redis/6379.conf
进入redis根目录,输入命令:
1
| ./redis-server /etc/redis/6379.conf
|
如果更改了端口,使用redis-cli
客户端连接时,也需要指定端口,例如:
使用redis启动脚本设置开机自启动
启动脚本 redis_init_script
位于位于Redis的 /utils/
目录下,redis_init_script
脚本代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| #!/bin/sh REDISPORT=6379 EXEC=/usr/local/bin/redis-server CLIEXEC=/usr/local/bin/redis-cli PIDFILE=/var/run/redis_${REDISPORT}.pid CONF="/etc/redis/${REDISPORT}.conf" case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; *) echo "Please use start or stop as first argument" ;; esac
|
根据启动脚本,将修改好的配置文件复制到指定目录下,用root用户进行操作:
1 2
| mkdir /etc/redis cp redis.conf /etc/redis/6379.conf
|
将启动脚本复制到/etc/init.d
目录下,本例将启动脚本命名为redisd
(通常都以d结尾表示是后台自启动服务)。
1
| cp redis_init_script /etc/init.d/redisd
|
设置为开机自启动,直接配置开启自启动 chkconfig redisd on
发现错误: service redisd does not support chkconfig
解决办法,在启动脚本开头添加如下注释来修改运行级别:
再设置即可
1 2 3 4 5 6
| #设置为开机自启动服务器 chkconfig redisd on #打开服务 service redisd start #关闭服务 service redisd stop
|
消息订阅
redis的发布订阅系统有点类似于我们生活中的电台,电台可以在某一个频率上发送广播,而我们可以接收任何一个频率的广播,Android中的broadcast也和这类似。
订阅消息的方式如下:
1 2 3 4 5 6 7 8 9 10 11
| 127.0.0.1:12001> SUBSCRIBE c1 c2 c3 Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "c1" 3) (integer) 1 1) "subscribe" 2) "c2" 3) (integer) 2 1) "subscribe" 2) "c3" 3) (integer) 3
|
这个表示接收c1,c2,c3三个频道传来的消息,发送消息的方式如下:
1 2
| 127.0.0.1:12001> PUBLISH c1 "I am lvshen" (integer) 1
|
当c1这个频道上有消息发出时,此时在消息订阅控制台可以看到如下输出:
1 2 3
| 1) "message" 2) "c1" 3) "I am lvshen"
|
在redis中,我们也可以使用模式匹配订阅,如下:
1 2 3 4 5
| 127.0.0.1:12001> PSUBSCRIBE c* Reading messages... (press Ctrl-C to quit) 1) "psubscribe" 2) "c*" 3) (integer) 1
|
此时可以接收到所有以c开头的频道发来的消息。