python处理Redis的基本操作

我与影子孤独终老i 提交于 2020-02-26 07:04:07

安装

docker run -d -p 6379:6379 redis

操作

连接

redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。

def save_to_redis(key, value):
    r = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD,
                    decode_responses=True)
    return r.set(key, value, ex=REDIS_EXPIRE_TIME)
    

2. 连接池

redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。

def save_to_redis(key, value):
    r = redis.ConnectionPool(host=REDIS_HOST, port=REDIS_PORT, decode_responses=True, password=REDIS_PASSWORD,)
    return r.set(key, value, ex=REDIS_EXPIRE_TIME)

3.redis 基本命令 String

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

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

参数:

  • ex - 过期时间(秒)
  • px - 过期时间(毫秒)
  • nx - 如果设置为True,则只有name不存在时,当前set操作才执行
  • xx - 如果设置为True,则只有name存在时,当前set操作才执行

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

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

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

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

3.2.setnx(name, value)

设置值,只有name不存在时,执行设置操作(添加)

print(r.setnx('fruit1', 'banana'))  # fruit1不存在,输出为True

3.3.setex(name, time, value)

其它命令使用过后再补充。

参考

https://www.cnblogs.com/bigberg/p/8259903.html

http://runoob.com/w3cnote/python-redis-intro.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!