python redis

个人博客,欢迎来撩 fangzengye.com

1.开启服务

 ./redis-server

2.安装redis

sudo pip3 install redis
或
sudo easy_install redis
或
sudo python setup.py install

3.建立连接

import redis
r = redis.StrictRedis(host='localhost', port=6379, db=0)
r.set('foo', 'bar')
True
r.get('foo')
'bar'

4.实例

import redis   # 导入redis 模块

r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.set('name', 'runoob') # 设置 name 对应的值
print(r['name'])
print(r.get('name')) # 取出键 name 对应的值
print(type(r.get('name'))) # 查看类型

输出结果

runoob
runoob
<class 'str'>

5.连接池

redis-py 使用 connection pool 来管理对一个 redis server 的所有连接,避免每次建立、释放连接的开销。

默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数 Redis,这样就可以实现多个 Redis 实例共享一个连接池

import redis    # 导入redis 模块

pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.set('name', 'runoob') # 设置 name 对应的值
print(r.get('name')) # 取出键 name 对应的值

redis 基本命令 String

set(name, value, ex=None, px=None, nx=False, xx=False)

在 Redis 中设置值,默认,不存在则创建,存在则修改。

参数:

  • ex - 过期时间(秒),过期之后变none
  • px - 过期时间(毫秒),过期会变none
  • nx - 如果设置为True,则只有name不存在时,当前set操作才执行。为了添加不存在的样本
  • xx - 如果设置为True,则只有name存在时,当前set操作才执行。为了修改、更新已有的样本

1.ex - 过期时间(秒) 这里过期时间是3秒,3秒后p,键food的值就变成None

import redis

pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
r.set('food', 'mutton', ex=3) # key是"food" value是"mutton" 将键值对存入redis缓存
print(r.get('food')) # mutton 取出键food对应的值

px - 过期时间(豪秒) 这里过期时间是3豪秒,3毫秒后,键foo的值就变成None

import redis

pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
r.set('food', 'beef', px=3)
print(r.get('food'))

nx - 如果设置为True,则只有name不存在时,当前set操作才执行 (新建)

import redis

pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
print(r.set('fruit', 'watermelon', nx=True)) # True--不存在

如果键fruit不存在,那么输出是True;如果键fruit已经存在,输出是None

xx - 如果设置为True,则只有name存在时,当前set操作才执行 (修改)

print((r.set('fruit', 'watermelon', xx=True)))   # True--已经存在
# 如果键fruit已经存在,那么输出是True;如果键fruit不存在,输出是None

 

 

 

参考资料

https://www.runoob.com/w3cnote/python-redis-intro.html

 

 

 

 

 

 

posted @ 2020-12-15 10:11  开源的Boy  阅读(63)  评论(0)    收藏  举报