栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【Redis】Python连接redis增删改查

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Redis】Python连接redis增删改查

文章目录
  • 一、python连接redis:
    • 1.1、首先安装redis模块:
    • 1.2、python连接redis数据库:
    • 1.2、查看表名称是否存在:
    • 1.3、redis新增&更改操作:
    • 1.4、获取redis表下所有key值:
    • 1.5、根据表名称和key值获取对应的value:
    • 1.6、根据数据表名称返回keys、values列表:
    • 1.7、redis根据数据表名称及key值删除对应的value值

一、python连接redis:

说明:平时工作当中为了读取方便都会采取redis缓存的方式那么对于redis的增、删、改、查操作就有需求

1.1、首先安装redis模块:
pip install redis

1.2、python连接redis数据库:
import redis
import time
from ReadYaml import *


class operate_redis(object):
    def __init__(self,number):
        # redis数据库连接重试功能和连接超时功能的连接
        self._max_retries_count = 2  # 设置最大重试次数
        self._conn_retries_count = 0  # 初始重试次数
        self._conn_timeout = 10  # 连接超时时间为10秒
        self.db = number  # 连接对应redis数据库db13
        # redis数据库连接
        self._list = []
        self.host = ec_mysql_redis1()['host']
        self.pw = ec_mysql_redis1()['password']
        self.port = ec_mysql_redis1()['port']
        while self._conn_retries_count <= self._max_retries_count:
            try:
                self.redis = redis.Redis(
                    host=self.host,
                    password=self.pw,
                    db=self.db,
                    port=self.port,
                    socket_connect_timeout=self._conn_timeout)
                break
            except:
                print(f"{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}redis数据库连接失败")
                self._conn_retries_count += 1
            time.sleep(2)
            continue
1.2、查看表名称是否存在:
    def if_exists(self, name: str):
        # 校验输入的redis数据表名称是否存在
        return self.redis.exists(name)
1.3、redis新增&更改操作:
    def add_redis(self, name: str, key: str, value):
        # 指定redis新增和更改操作,key值没有则新建,有则更新
        try:
            self.redis.hset(name, key, value)
        except Exception as e:
            raise e
        else:
            print("redis写入操作:success")
1.4、获取redis表下所有key值:
    def get_keys(self, name: str):
        # 获取redis表下所有key键值
        if operate_redis().if_exists(name=name) == 1:
            try:
                for i in self.redis.hkeys(name):
                    list = self._list
                    list.append(i.decode('utf8'))
            except Exception as e:
                raise e
            else:
                return list
        else:
            print("redis下name有误请检查后重新输入")
1.5、根据表名称和key值获取对应的value:
    def query_redis(self, name: str, key: str):
        # 输入redis数据表名称及对应的key值精确查找value值
        if operate_redis().if_exists(name=name) == 1:
            try:
                keys = operate_redis().get_keys(name=name)
                if key in keys:
                    value = self.redis.hget(name=name, key=key)
                    return value.decode('utf8')
                    # print(value.decode('utf8'))
                else:
                    print("该name名称下不存在该key值,请查证后重新输入")
            except Exception as e:
                raise e
        else:
            print("redis下name有误请检查后重新输入")
1.6、根据数据表名称返回keys、values列表:
    def get_keys_values(self, name: str):
        # 输入redis数据表的名称返回keys,values列表
        if operate_redis().if_exists(name=name) == 1:
            try:
                keys = operate_redis().get_keys(name=name)
                values = self._list
                for key in keys:
                    value = self.redis.hget(name=name, key=key)
                    values.append(value.decode('utf8'))
                return [keys, values]
            except Exception as e:
                raise e
        else:
            print("redis下name有误请检查后重新输入")
1.7、redis根据数据表名称及key值删除对应的value值
    def deleted_redis(self, name: str, key: str):
        if operate_redis().if_exists(name=name) == 1:
            try:
                keys = operate_redis().get_keys(name=name)
                if key in keys:
                    self.redis.hdel(name, key)
                    print(f"删除{name}下{key}键值对成功")
                else:
                    print("该name名称下不存在该key值,请查证后重新输入")
            except Exception as e:
                raise e
        else:
            print("redis下name有误请检查后重新输入")
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/966256.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号