python处理redis使用专用的redis模块. 同样的, 它也是一个第三方库.
pip install redis
获取连接(1)
from redis import Redis
red = Redis(host=“127.0.0.1”, # 地址
port=6379, # 端口
db=0, # 数据库
password=123456, # 密码
decode_responses=True) # 是否自动解码相当于 --raw
获取连接(2)
pool = redis.ConnectionPool(
host=“127.0.0.1”, # 地址
port=6379, # 端口
db=0, # 数据库
password=123456, # 密码
decode_responses=True
)r = redis.Redis(connection_pool=pool)
print(r.keys())
我们以一个免费代理IP池能用到的操作来尝试一下redis
存入数据
red.set(“sylar”, “狗蛋子”)
获取数据
print(red.get(“sylar”))lst = [“张三丰”, “张无忌”, “张翠山”, “张娜拉”]
red.lpush(“names”, *lst) # 将所有的名字都存入names查询所有数据
result = red.lrange(“names”, 0, -1)
print(result)从上面的操作上可以看出. python中的redis和redis-cli中的操作是几乎一样的
注意zset的增加zadd格式为zadd(key,mapping)
接下来, 咱们站在一个代理IP池的角度来分析各个功能
抓取到了IP. 保存入库
red.zadd(“proxy”, {“192.168.1.1”: 10, “192.168.1.2”: 10})
red.zadd(“proxy”, {“192.168.1.3”: 10, “192.168.1.6”: 10})
red.zadd(“proxy”, {“192.168.1.4”: 10, “192.168.1.7”: 10})
red.zadd(“proxy”, {“192.168.1.5”: 10, “192.168.1.8”: 10})给某一个ip增加到100分
red.zadd(“proxy”, {“192.168.1.4”: 100})给"192.168.1.4" 扣10分
red.zincrby(“proxy”, -10, “192.168.1.4”)分扣没了. 删除掉它
red.zrem(“proxy”, “192.168.1.4”)可用的代理数量
c = red.zcard(“proxy”)
print( c )
根据分值进行查询(0~100)之间
r = red.zrangebyscore(“proxy”, 0, 100)
print( r )查询前100个数据(分页查询)
r = red.zrevrange(‘proxy’, 0, 100)判断proxy是否存在, 如果是None就是不存在
r = red.zscore(“proxy”, “192.168.1.4”)
print®