Java全栈面试题(三)--Redis

对Redis的理解

        Redis是一款开源的高性能键值对存储系统,支持多种数据类型,如字符串、哈希、列表、集合、有序集合等。主要用于缓存、消息队列、排行榜、计数器等场景,能够提供快速读写、高并发、持久化等功能。

        Redis是单线程的,通过采用多路I/O复用模型以及非阻塞I/O来实现高并发访问。同时,支持主从复制和Sentinel模式实现高可用,支持Cluster模式实现分布式,支持Lua脚本扩展功能。       

        Redis的内存管理是通过引用计数机制来实现的,同时支持简单动态字符串、快速列表等优化方式。为了避免数据过期后内存仍然占用的问题,Redis支持定时删除和惰性删除两种方式,并且支持持久化机制,包括RDB和AOF两种方式,可以根据具体业务常见选择合适的方式。

        总之,Redis具有高性能,可扩展、可靠性、灵活性等优点,被广泛应用于互联网企业的后端存储中。

Redis的数据类型

        字符串(String):最基本的数据类型,可以存储字符串、整数或浮点数。

        列表(list):由多个字符串组成的有序列表,支持从两端进行元素的添加、删除等操作

        集合(set):由多个字符串组成的无序集合,支持集合的交、并、差等操作

        有序集合(sorted set):由多个字符串及其对应的分数组成的有序集合,支持按照分数进行范围查询、排名等操作

        哈希表(hash):由多个字段和值组成的散列表,可以存储对象等复杂结构

        这些数据类型各自具有特定的功能和适用场景,可以根据具体的需求选择合适的数据类型进行存储和操作。在使用Redis时,需要根据数据类型的不同选择合适的命令进行操作,如GET/SET命令用于字符串类型的读写操作,LPUSH/RPOP命令用于列表类型的插入和弹出操作,SADD/SMEMBERS命令用于集合类型的添加和获取操作,ZADD/ZRANGE命令用于有序集合类型的添加和范围查询操作,HSET/HGETALL命令用于哈希表类型的添加和获取操作等等。

Redis淘汰机制

        指在Redis的内存使用达到了最大限制时,Redis需要淘汰一些键值对,以释放内存空间。

        LUR(最近最少使用),Redis默认使用的淘汰机制:优先淘汰最近最少使用的键值对。Redis维护一个访问计数器,每次访问一个键值对时,就将该键值对的计数器加1。当需要淘汰键值对时,选择访问次数最少的键值对进行淘汰。

        LFU(最不经常使用)淘汰机制:优先淘汰最近最少使用的键值对,即在一段时间内被访问次数最少的键值对。

        TTL(生存时间)淘汰机制:优先淘汰过期时间最早的键值对,即距离过期时间最近的键值对

        随机淘汰机制:Redis会随机选择一些键值对进行淘汰

        可以通过配置文件或者命令行参数来设置其他的淘汰机制。Redis还提供了一些手动淘汰命令

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值