同福

Python操作Redis数据库

介绍

介绍

今天我们来学习使用 Python 操作 Redis 数据库的方法

教程

安装redis模块

通过github安装redis模块

wget https://github.com/andymccurdy/redis-py/archive/master.zip -O redis-py-3.5.3.zip
unzip redis-py-3.5.3.zip
cd redis-py-master/
python3 setup.py install
cd ../

字符串set操作

编写测试脚本 redisTest.py,内容如下

#!/usr/bin/python

import redis

r = redis.Redis(host='localhost',port=6379)
r.set('str','haha')

str = r.get('str')

print (str)

执行结果如下

[root@tongfunet]# python3 redisTest.py 
b'haha'

列表list操作

编写脚本 redisListWrite.py,内容如下

#!/usr/bin/python

import sys
import redis

r = redis.Redis(host='localhost',port=6379)
r.lpush('list',sys.argv[1])

编写脚本 redisListRead.py,内容如下

#!/usr/bin/python

import redis

r = redis.Redis(host='localhost',port=6379)

while (1):
    msg = r.brpop('list', timeout=300)
    line = "the msg is {}".format(msg)
    print (line)

启动 redisListRead.py

python3 redisListRead.py

通过 redisListWrite.py 写入数据

python3 redisListWrite.py hello
python3 redisListWrite.py nihao

查看测试结果

the msg is (b'list', b'hello')
the msg is (b'list', b'nihao')

集合操作

插入项目

通过sadd()方法完成

r.sadd("hosts","192.168.1.111:8080")
r.sadd("hosts","192.168.1.112:8080")
r.sadd("hosts","192.168.1.113:8080")

获取项目数量

通过scard()方法实现

r.scard("hosts")

比较差异

获取两个集合的差集,通过sdiff()方法实现

r.sadd("hosts","192.168.1.111:8080","192.168.1.112:8080","192.168.1.113:8080")
r.sadd("hosts2","192.168.1.112:8080","192.168.1.115:8080","192.168.1.118:8080")

print (r.sdiff("hosts","hosts2"))

比较并存储差异

获取两个集合的差集存储到一个新的集合里,通过sdiffstore方法实现