7.psetex(name, time_ms, value) time_ms - 过期时间(数字毫秒 或 timedelta对象)
import redis
import time
pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
r.psetex("whoisdaofeng", 5000, "a dragon")
time.sleep(5)
print(r.get('whoisdaofeng')) # 5秒后,取值就从a dragon变成None
8.mset(*args, **kwargs) 批量获取
print(r.mget('daofengql', 'name'))
10.getset(name, value)
print(r.getset("daofengql", "strong dragon")) # 设置的新值是strong dragon 设置前的值是a dragon
print(r.get('daofengql'))
11.getrange(key, start, end) 获取子序列(根据字节获取,非字符)
参数:
- name - Redis 的 name
- start - 起始位置(字节)
- end - 结束位置(字节)
r.set("name", "道峰潜鳞")
print(r.getrange("name", 0, 2)) # 取索引号是0-2 前3位的字节 道 切片操作 一个汉字3个字节 1个字母一个字节 每个字节8bit
12.setrange(name, offset, value) 修改字符串内容,从指定字符串索引开始向后替换(新值太长时,则向后添加)
参数:
- offset - 字符串的索引,字节(一个汉字三个字节)
- value - 要设置的值
r.set("ename","da")
r.setrange("ename", 1, "daofengql")
print(r.get("ename"))
13.strlen(name) 返回name对应值的字节长度(一个汉字3个字节)
import redis
pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
r.set("dragon","daofengql")
print(r.strlen("dragon")) # 9 'daofengql'的长度是9
14.incr(self, name, amount=1) 自增 name 对应的值,当 name 不存在时,则创建 name=amount,否则,则自增。
参数:
- name - Redis的name
- amount - 自增数(必须是整数)
import redis
pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
r.set("data1", 1)
print(r.get("data1"))
for i in range(0,30):
r.incr("data1", amount=1)
print(r.get("data1"))
print(r.get("data2"))
for i in range(0,30):
r.incr("data2", amount=1)
print(r.get("data2"))
15.incrbyfloat(self, name, amount=1.0) 自增 name对应的值,当name不存在时,则创建name=amount,否则,则自增。
参数:
- name - Redis的name
- amount - 自增数(浮点型)
import redis
pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
r.set("data1", "1.0")
print(r.get("data1"))
for i in range(0,30):
r.incrbyfloat("data1", amount=0.1)
print(r.get("data1"))
print(r.get("data2"))
for i in range(0,30):
r.incrbyfloat("data2", amount=0.1)
print(r.get("data2"))
16.delete(keyname) 删除键
import redis
pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
r.set("data1", "1")
print(r.get("data1"))
r.delete("data1")
print(r.get("data1"))
[…] 下接:Python3操作Redis数据库(二) […]