首页 > 数据库 >redis 数据库

redis 数据库

时间:2024-01-13 19:44:57浏览次数:29  
标签:删除 过期 数据库 redis 时间 字典

1 redis 单机数据库结构

1 redis server/client 结构

 2 每个数据库都有一个包含所有数据的字典

 

2 过期时间

redis 每个库都会保存一个结构,里面包含了 每个键的过期时间的字典结构;

redis  如何判断过期,首先检查给的键是否在过期字典中, 如果在,那就获取过期时间,在检查当前Unix时间戳是否大于键的过期时间

 

3 过期键如何删除,有三种策略

   1 定时删除,设置键的过期时间同时,设置一个定时器,定时器在过期时执行删除键的删除操作

   2 惰性删除,在每次需要访问键的时候,检查键是否过期,过期了就删除

   3 定期删除,每隔一段时间,就对数据库进行异常检查,删除里面的过期键

  如何选择,需要评估,定时删除需要大量的cpu 资源, 惰性删除可能会导致大量的内存浪费。定期删除是一个折中方案,具体策略待后续实践更新。。。。。

 

标签:删除,过期,数据库,redis,时间,字典
From: https://www.cnblogs.com/jiangvtn/p/17962820

相关文章

  • 分布式限流——基于Redis的Lua脚本限流实现
    分布式限流当你的应用分布式部署出现对等端(peer)时,单机的限流往往不能满足对下游保护的作用,因为它仅仅是jvm内存层面的流量控制。这个时候自然而然会想到用一些跨JVM的分布式中间件控制在单位时间窗口内的请求是否通行,本文我们将探讨如何借助Redis实现分布式限流。1固定窗口限流......
  • 深入学习数据库事务
    什么是数据库事务事务(Transaction):一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在计算机术语中,事务通常就是指数据库事务,是逻辑上的一组数据库操作,要么都执行,要么都不执行。例子:假如A要给B转账500元,这个转账会涉及......
  • openGauss学习笔记-196 openGauss 数据库运维-常见故障定位案例-强制结束指定的问题会
    openGauss学习笔记-196openGauss数据库运维-常见故障定位案例-强制结束指定的问题会话196.1强制结束指定的问题会话196.1.1问题现象有些情况下,为了使系统继续提供服务,管理员需要强制结束有问题的会话。196.1.2处理办法以操作系统用户omm登录主机。使用如下命令连接......
  • 手把手教你MongoDB 数据库连接URL 格式、authSource参数
    快速了解MongoDB官方文档MongoDB是一个文档数据库MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成使用URL连接MongoDB数据库标准URI连接语法:mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]......
  • 确保你的数据库安全:如何防止SQL注入攻击
    最近,越来越多的组织和公司受到SQL注入攻击的困扰。这种攻击可以导致数据库中的敏感信息泄露,破坏数据完整性,甚至可能导致整个系统崩溃。如果您是一名数据库管理员或网站管理员,您需要了解如何保护您的数据库免受SQL注入攻击的威胁。在本文中,小德将介绍什么是SQL注入攻击,以及如何预防......
  • delphi redisclient测试
    unitUnit1;interfaceusesWinapi.Windows,Winapi.Messages,System.SysUtils,System.Variants,System.Classes,Vcl.Graphics,Vcl.Controls,Vcl.Forms,Vcl.Dialogs,Vcl.StdCtrls,Vcl.Buttons;typeTForm1=class(TForm)Memo1:TMemo;BitBtn1:......
  • Redis 哨兵启动 以及 手动切换节点
      服务启动  ./redis-server ../redis.conf   哨兵启动./redis-sentinel../sentinel.conf查看当前服务是否是主节点(先登录到redis)INFOreplication 要将从节点切换为主节点,您可以执行以下步骤:首先,确保从节点已成功连接到主节点。您可以使用 INFOrep......
  • Linux 部署redis集群(三主三从)
    1、由于redis是C语言编写的,安装之前需要保证有gcc的环境配置首先使用命令,查看gcc版本,若已经存在则跳过gcc的安装:gcc-v若不存在gcc,则使用命令安装gcc:yuminstallgcc-c++2、下载redis源文件mkdir/usr/local/rediscd/usr/local/rediswgethttp://download.redis.io/relea......
  • redis 浅谈3
    1redis数据结构简介sds链表字典跳跃表整数集合 压缩列表 2过期时间redis每个库都会保存一个结构,里面包含了每个键的过期时间的字典结构;redis 如何判断过期,首先检查给的键是否在过期字典中,如果在,那就获取过期时间,在检查当前Unix时间戳是否大于键的过期时间 3......
  • Winform中使用Fleck实现Websocket服务端并读取SQLite数据库中数据定时循环群发消息
    场景Winform中使用Websocket4Net实现Websocket客户端并定时存储接收数据到SQLite中:Winform中使用Websocket4Net实现Websocket客户端并定时存储接收数据到SQLite中-Winform中操作Sqlite数据增删改查、程序启动时执行创建表初始化操作:Winform中操作Sqlite数据增删改查、程序启动时执......