Python3操作Redis数据库(二)

道锋潜鳞
2021-05-30 / 1 评论 / 61 阅读 / 正在检测是否收录...

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"))

未完待续...

0

评论 (1)

取消
  1. 头像

    […] 下接:Python3操作Redis数据库(二) […]

    回复