一、 mac系统下 redis 安装 和启动
方法一:用brew安装
- 查看系统是否已经安装了redis
brew info redis
这个命令会展示此系统下的redis信息,如果没有安装,会展示not install
- 安装
brew install redis
可能需要等一会,系统下载完redis的包,会自动进行安装
- 启动redis:
brew services start redis
这个命令会在后台启动redis服务,并且每一次登录系统,都会自动重启
- 假如你不需要后台启动服务,你可以使用配置文件启动,命令如下:
redis-server /usr/local/etc/redis.conf
这个命令会读取redis的配置文件,并且在redis运行的过程中也会看到实时的日志打印。
启动成功,如下所示:
11862:C 20 Dec 2018 18:52:29.755 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
11862:C 20 Dec 2018 18:52:29.755 # Redis version=5.0.2, bits=64, commit=00000000, modified=0, pid=11862, just started
11862:C 20 Dec 2018 18:52:29.755 # Configuration loaded
11862:M 20 Dec 2018 18:52:29.756 * Increased maximum number of open files to 10032 (it was originally set to 4864).
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 5.0.2 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 11862
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
11862:M 20 Dec 2018 18:52:29.757 # Server initialized
- 连接redis
需要新打开一个终端,再输入如下的命令:
# 不需要身份认证时
redis-cli -p 6379 -h 127.0.0.1
# 需要身份认证时,输入如下命令
redis-cli -p 6379 -h 127.0.0.1 -a yourpassword
# or
redis-cli -p 6379 -h 127.0.0.1
# 登录进去之后再进行身份认证
127.0.0.1:6379> auth 0903
方法二:去官网下载安装包进行安装
- 下载稳定版安装包:redis官网下载,选择Stable版本进行安装
- 下载完成后进入到安装包的目录,依次输入如下的命令:
# 解压
tar zxvf redis-4.0.9.tar.gz
# 移动
mv redis-4.0.9 /usr/local/
# 切换到目录
cd /usr/local/redis-4.0.9/
# 编译测试
sudo make test
# 编译安装
sudo make install
- redis的启动和停止
redis-server
和redis-cli
位于redis-4.0.9/src
目录下 :- 启动redis:
redis-server
,就能直接启动成功;如果想要加上配置文件启动可以:redis-server /etc/redis.conf
- 终端登录redis:参看方法一步骤5
- 启动redis:
二、python操作redis
说明:本文章采用的redis库来操作redis,开源项目参考:https://github.com/andymccurdy/redis-py
Getting Started
>>> import redis
>>> r = redis.Redis(host='localhost', port=6379, db=0)
>>> r.set('foo', 'bar')
True
>>> r.get('foo')
'bar'
订阅功能使用
- 订阅-服务端
from redis import Redis
xtredis = Redis(host='127.0.0.1', port=6379, password='foobared')
for i in range(5):
xtredis.publish('email', 'message: Message{}'.format(i))
- 订阅-客户端
def subscribe_test():
"""
订阅操作
:return:
"""
ps = xtredis.pubsub()
# 订阅channel
ps.subscribe('email')
while True:
for item in ps.listen():
print(item)