当前位置: 首页 > article >正文

Redis 使用记录

封装调用redis类

import redis
from conf.config import RedisConfig
class RedisConfig:
    redis_json = config_data['redis_config']
    redis_pwd = env.get('project_name').get('pwd')
    host = redis_json.get("host")
    dialog_states_db = redis_json.get("dialog_states_db")
    dialog_states_url = "redis://:{}@{}:{}".format(quote(redis_pwd), host, dialog_states_db)
    master_name = redis_json['master_name']

class RedisClient:
    def __init__(self):
        self.client = redis.StrictRedis(host=RedisConfig.host, port=RedisConfig.port, db=RedisConfig.db, decode_responses=True, password=RedisConfig.redis_pwd)

    def set(self, key, value, ex=None):
        """
        设置key-value
        :param key: 键名
        :param value: 要设置的值
        :param ex: 过期时间(秒)
        """
        return self.client.set(name=key, value=value, ex=ex)

    def get(self, key):
        """
        获取key-value
        :param key: 键名
        """
        return self.client.get(name=key)

    def delete(self, key):
        """
        删除key
        :param key: 键名
        """
        return self.client.delete(key)

    def add_set(self, key, value):
        """
        集合中存在该元素则返回0,不存在则添加进集合中,并返回1
        如果key不存在,则创建key集合,并添加元素进去,返回1
        """
        return self.client.sadd(key, value)

    def is_inset(self, key, value):
        """
        判断value是否在key集合中,返回布尔值
        """
        return self.client.sismember(key, value)

    def exists(self, key):
        """
        判断key是否存在
        :param key: 键名
        """
        return self.client.exists(key)

    def incr(self, key, amount=1):
        """
        递增
        :param key: 键名
        :param amount: 递增量
        """
        return self.client.incr(name=key, amount=amount)

    def expire(self, key, time):
        """
        设置过期时间
        :param key: 键名
        :param time: 生存时间(秒)
        """
        return self.client.expire(name=key, time=time)

    def ttl(self, key):
        """
        获取剩余存活时间
        :param key: 键名
        """
        return self.client.ttl(name=key)

    def close(self):
        """
        关闭连接
        """
        self.client.close()

Redis中的TTL

TTL用于设置生存时间,指定键的有效时间,当时间到达0时过期,redis会进行删除,但不是实时的,当过期的键被访问时会被删除或redis定时(默认100毫秒)超时检查删除。

参考:

redis里TTL如果到0是不是就删除了_mob64ca12df9869的技术博客_51CTO博客


http://www.kler.cn/news/339479.html

相关文章:

  • 鸿蒙应用示例:DevEco Testing 工具的常用功能及使用场景
  • 用YOLO和LLM增强的OCR
  • MySql复习知识及扩展内容
  • C语言 | Leetcode C语言题解之第464题我能赢吗
  • 【微服务】—SpringBoot入门
  • docker详解介绍+基础操作 (一)
  • 模拟实现字符函数和字符串函数(一)
  • YOLOv5工件检测系统 五类工件(螺丝,螺母,六角扳手,铜柱,尼龙柱)有数据集,已打好标签,已训练好,准确度高,可用于机器人抓取物品操作
  • 文件内容提取:Apache Tika 2.9.2
  • InnoDB 磁盘结构 - RedoLog
  • 【数据分享】全国地级市2000-2022年公路里程数据(Shp/Excel格式)
  • 2024年下半年软考准考证什么时候打印?
  • sklearn机器学习实战——随机森林回归与特征重要性分析全过程(附完整代码和结果图)
  • 时间卷积网络(TCN)原理+代码详解
  • 【React】setState 是怎么记住上一个状态值的?
  • 蒙特卡罗方法 - 重要采样篇
  • 《Linux从小白到高手》理论篇:深入理解Linux的计划任务/定时任务
  • Axure PR 9 开关切换 设计交互
  • JPA 概述及描述对象和表之间的映射关系注解
  • 线程安全反思录(上):ThreadLocal到底安全不?