Redis 数据库结构

结构:

public class RedisDb {
    private int id;         // 数据库号码,用来程序内部选择数据库
    private Dictionary dict;   // 键值数据
    private Dictionary<String, Long> expires;// 过期信息
}

实际上键值数据是字典结构,这里使用HashMap表示

键空间

键空间的操作

  • 字典的基本操作,增删改查
  • 更新命中率
  • 更新lru
  • 删除过期键
  • 事务中对键的修改设置为脏

键的过期

expires保存了键的过期时间,可以使用命令来设置该四件

过期判定
if(existInExpires(key)){
    if(now() > expires.get(key)){
        // 过期
    }
}
过期键删除

有三种方式:

  • 定时删除, 在设置的时候创建定时任务,到时执行删除
    内存友好,费CPU
  • 惰性删除,过期不管,下次访问时删除且返回空
    CPU友好,费内存
  • 定期删除,使用定期任务,来检查是否过期。 折中
    redis使用了后两者相配合。
过期对AOF等的影响
  • 过期键不写入RDB
  • 过期键删除点(惰性或者定期)会写AOF
  • 复制, 主节点会同步删除,从属节点返回已经过期但是不删除
Redis数据库是一种键值对存储系统,它使用键(key)和值(value)之间的映射关系来存储数据。Redis数据库结构主要由以下几个部分组成: 1. 键(Key):Redis数据库中的键是一个字符串类型的标识符,用于唯一标识一个数据项。键可以存储任何类型的数据,包括字符串、列表、集合、哈希表等。 2. 值(Value):Redis数据库中的值是一个可以存储任意类型数据的容器,包括字符串、列表、集合、哈希表、二进制数据等。Redis使用数据类型来存储不同类型的值,例如字符串类型的值可以使用SET命令进行存储和检索。 3. 数据结构Redis提供了多种数据结构,如字符串、列表、集合、哈希表等,这些数据结构可以用于存储和检索复杂的数据类型。例如,可以使用哈希表来存储键值对,使用集合来存储一组唯一的元素等。 4. 命令:Redis提供了丰富的命令来操作数据库中的数据。这些命令包括SET、GET、HSET、HGET、LRANGE等,用于设置键值对、获取值、获取哈希表中的值、获取列表中的元素等操作。 5. 存储引擎:Redis使用内存作为默认的存储引擎,这意味着数据在内存中保持高速读写性能。此外,Redis还支持将数据持久化到磁盘中,以实现数据的长期存储和备份。 总之,Redis数据库结构由键值对组成,使用数据结构来存储和检索数据,并提供了丰富的命令来操作数据库中的数据。Redis支持内存存储和持久化存储两种方式,可以根据实际需求选择合适的存储方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值