编程学习网 > 编程语言 > Python > python操作Redis增、删、改、查,独立版本教程
2023
08-15

python操作Redis增、删、改、查,独立版本教程

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教程欢迎持续关注编程学习网。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取