python redis模块用法详解

 Pala   2018-02-28 16:28   152 人阅读  0 条评论

redis模块安装:

pip install redis

连接redis

import redis  
 # 导入redis模块,通过python操作redis 也可以直接在redis主机的服务端操作缓存数据库

conn = redis.Redis(host='localhost', port=6379, decode_responses=True)   
# host是redis主机,需要redis服务端和客户端都启动 redis默认端口是6379
# ecode_responses=True,写入的键值对中的value为str类型,不加这个参数写入的则为字节类型

redis基本命令 String

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

import redis

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

print(conn.get('food'))  
# mutton 取出键food对应的值

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

import redis

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

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

import redis

pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
conn = redis.Redis(connection_pool=pool)
conn.set('food', 'beef', nx=True))    # True--不存在

print(conn.get('food'))

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

import redis

pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
conn = redis.Redis(connection_pool=pool)
conn.set('food', 'beef', xx=True)))   # True--已经存在

print(conn.get('food'))

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

import redis

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

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

6.setex(name, value, time) 设置值

参数:

time,过期时间(数字秒 或 timedelta对象)

conn.setex("fruit", "apple", 5)
time.sleep(5)

print(conn.get('fruit'))  # 5秒后,取值就从apple变成None

7.psetex(name, time_ms, value)  设置值

参数:

time_ms,过期时间(数字毫秒 或 timedelta对象)

conn.psetex("fruit3", 5000, "apple")
time.sleep(5)
print(conn.get('fruit3'))  # 5000毫秒后,取值就从apple变成None

8.mset(*args, **kwargs) 批量设置值

conn.mget({'k1': 'v1', 'k2': 'v2'})
conn.mset(k1="v1", k2="v2") # 这里k1 和k2 不能带引号 一次设置对个键值对
print(conn.mget("k1", "k2"))   # 一次取出多个键对应的值
print(conn.mget("k1"))

9.mget(keys, *args) 批量获取

print(conn.mget('k1', 'k2'))
print(conn.mget(['k1', 'k2']))

# 将目前redis缓存中的键对应的值批量取出来
print(conn.mget("fruit", "fruit1", "fruit2", "k1", "k2"))

10.getset(name, value) 设置新值并获取原来的值

pri

10.getrange(key, start, end) 获取子序列(根据字节获取,非字符)

参数:

name,Redis 的 name

start,起始位置(字节)

end,结束位置(字节)

pri


本文地址:http://chenxm.cc/post/549.html
版权声明:本文为原创文章,版权归 Pala 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?