java中redis的面试_Java 面试系列:Redis 面试题汇总

1.Redis 使用场景有哪些?

答:Redis 使用场景如下:记录帖子点赞数、点击数、评论数

缓存近期热帖

缓存文章详情信息

记录用户会话信息

2.Redis 有哪些功能?

答:Redis 功能如下:数据缓存功能

分布式锁的功能

支持数据持久化

支持事务

支持消息队列

3.Redis 支持哪些数据类型?

答:Redis 支持的数据类型如下:String 字符串

List 列表

Set 无序集合

ZSet 有序集合

Hash 哈希类型

4.Redis 相比 Memcached 有哪些优势?

答:Redis 相比 Memcached 优势如下:Memcached 所有的值均是简单的字符串,Redis 支持更为丰富的数据类型

Redis 的速度比 Memcached 要快

Redis 可以持久化

Redis 可以设置过期时间

Redis 支持主从同步

5.Redis 支持哪些淘汰策略?

答:Redis 淘汰策略如下:noeviction:禁止淘汰数据;

allkeys-lru:尝试回收最少使用的键,使得新添加的数据有空间存放;

volatile-lru:尝试回收最少使用的键,但仅限于在过期集合的键,使得新添加的数据有空间存放;

allkeys-random:回收随机的键使得新添加的数据有空间存放;

volatile-random:回收随机的键使得新添加的数据有空间存放,但仅限于在过期集合的键;

volatile-ttl:回收在过期集合的键,并且优先回收存活时间较短的键,使得新添加的数据有空间存放。

6.官方为什么不支持 Windows 版本?

答:Redis 官方是不支持 Windows 版的,因为目前 Linux 版本已经相当稳定,如果开发 Windows 版本,反而会带来兼容性等问题。

7.为什么 Redis 是单线程的?

答:因为 Redis 的瓶颈最有可能是机器内存或者网络带宽,而非单线程,既然单线程不是 Redis 的性能瓶颈,并且单线程又比较容易实现,所以 Redis 就选择使用单线程来实现。

单线程并不代表运行速度就慢,比如,Nginx 和 NodeJs 都是单线程高性能的代表。

8.为什么 Redis 需要把所有数据放到内存中?

答:Redis 为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘,这样 Redis 就拥有了快速查询和数据持久化等特征。

9.在 Redis 中 key 的最大容量是多少?

答:最大容量 512 MB,官方说明如下图所示:

db3e1b316dfe

1

10.Jedis 和 Redisson 有什么区别?

答:Jedis 和 Redisson 的区别如下:Jedis 是 Redis 的 Java 实现客户端,其 API 提供了比较全面的 Redis 命令的支持;

Redisson 实现了分布式和可扩展的 Java 数据结构,和 Jedis 相比,功能较为简单,不支持字符串操作,不支持排序、事务、管道、分区等 Redis 特性。Redisson 的宗旨是促进使用者对 Redis 的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。

11.Redis 如何设置过期时间?如何设置永久有效?

答:Redis 通过 expire() 方法设置过期时间,语法:redis.expire(key, expiration)。当 expire 的过期时间设置为 -1 时,表示永不过期。

12.如何保证 Redis 的数据一致性?

答:可使用以下方法来保证 Redis 的数据一致性:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值