Redis(Remote Dictionary Server)是一个开源的内存数据存储系统,它提供了键值对的存储方式。Redis支持多种数据结构,如字符串(String)、列表(List)、集合(Set)、哈希(Hash)、有序集合(Sorted Set)等。
Redis以高性能、可扩展性和灵活性而闻名。它将数据存储在内存中,以提供快速的读写操作,并通过持久化机制将数据写入磁盘,以防止数据丢失。Redis还提供了许多功能,如事务、发布订阅、Lua脚本执行等。由于其高性能和多功能性,Redis广泛应用于缓存、消息队列、计数器、实时排行榜、会话存储等场景。它支持多种编程语言的客户端,包括Python、Java、C#等,因此可以方便地与各种应用程序集成。
本次介绍一下Python操作Redis,首先得安装Redis包,它是一个用于与Redis数据库进行交互的Python库。它提供了一组功能丰富的API,使得在Python中使用Redis变得非常方便。
环境:
Pycharm
Python 3.9.16
安装:
pip install redis==4.6.0
创建Redis连接池
在Python中使用Redis连接池可以提高Redis的性能和效率,使用连接池可以更好地管理连接,减少网络开销和连接的建立时间。
pool = redis.ConnectionPool(host='localhost',
port=6379,
db=0,
max_connections=10,
decode_responses=True)
创建Redis连接对象
rd = redis.Redis(connection_pool=pool)
如果不使用连接池,则可以直接创建连接:
rd = redis.Redis(host='localhost',
port=6379,
db=0,
decode_responses=True)
释放连接对象
在Redis中,通过del释放连接对象,将连接返回到连接池(下次再操作Redis的时候,需要重新创建连接对象)
del rd
添加键值对
添加操作,可以添加单个键值对 和 添加多个键值对
添加单个键值对
rd.set('key1', 'value1')
结果:
添加多个键值对
rd.mset({'key2': 'value2', 'key3': 'value3', 'key4': 'value4'})
结果:
删除键值对
删除操作,可以单键删除 和 多键删除,当键值不存在时不会引发错误,只是简单地忽略不存在的键。
需要注意,删除操作要小心,因为它会直接从Redis中删除数据,无法恢复
删除单个键值对
rd.delete('key1')
删除多个键值对
rd.delete(['key1', 'key2'])
查询键值对
查询操作,可以获取单个键的值、获取多个键的值和获取库中所有的键,当键值不存在时不会引发错误,获取结果会返回None。
获取单个键的值
result = rd.get('key1')
print(result)
结果:
value1
获取多个键的值
result = rd.mget(['key1', 'key2', 'key3'])
print(result)
结果:
['value1', 'value2', 'value3']
获取当前库中所有的键
result = rd.keys()
print(result)
结果:
['key2', 'key3', 'key1', 'key4']
总结
以上操作中没有更新,其实在Redis中,添加键值对 操作,如果键存在,即为更新,如果键不存在,则为添加。
为使用方便,将Redis操作进行了简单的封装,如下:
# -*- coding: utf-8 -*-
import redis
class redis_tool:
def __init__(self, host='localhost', port=6379, db=0, decode_responses=True):
"""
建立连接
:param host: 地址
:param port: 端口
:param db: 库
:param decode_responses: 是否将获取到的数据以字符串形式返回,默认为False,字节形式;为True时,获取到的数据会自动以字符串形式返回
"""
self.host = host
self.port = port
self.db = db
# 创建Redis连接池
self.pool = redis.ConnectionPool(host='localhost', port=6379, db=db, max_connections=10,
decode_responses=decode_responses)
# 创建Redis连接对象
self.rd = redis.Redis(connection_pool=self.pool)
def close_conn(self):
"""
释放连接对象,将连接返回到连接池(下次再操作Redis的时候,需要重新创建连接对象)
:return:
"""
del self.rd
def set_value(self, key, value):
"""
# 添加单个键值对
:param key: 键
:param value: 值
:return:
"""
self.rd.set(key, value)
self.rd.close()
def set_values(self, data: dict):
"""
# 添加多个键值对
:param data: 数据,是个字典
:return:
"""
self.rd.mset(data)
self.rd.close()
def get_value(self, key):
"""
# 获取单个键的值
:param key: 键
:return:
"""
result = self.rd.get(key)
self.rd.close()
return result
def get_values(self, keys: list):
"""
# 获取多个键的值
:param keys: 键,是一个list
:return: 返回值也是个list
"""
result = self.rd.mget(keys)
self.rd.close()
return result
def get_keys(self):
"""
# 获取库中所有的键
:return: 返回值是个list
"""
result = self.rd.keys()
self.rd.close()
return result
def delete(self, key):
"""
# 删除
:param key: 键,如果删除多个键,就组成一个list
:return:
"""
if isinstance(key, list):
self.rd.delete(*key)
else:
self.rd.delete(key)
self.rd.close()
以上就是“python操作Redis增、删、改、查,独立版本教程”的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/11281/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取