Redis常考面试题

Redis是线程安全的么?

Redis是单进程单线程的,所以是线程安全的。Redis是利用队列技术将并发访问变为串行访问

为什么使用Redis,它有什么好处?

  1. 速度快,因为数据存放在内存中;
  2. 支持多种数据类型,支持String,List,Set,Sorted set,Hash(底层相当于一个Map结构);
  3. 提供了RDB和AOF两种持久化方式;
  4. 丰富的特性:可用作缓存,消息,可以按key设置过期时间,过期后将会自动删除;
  5. 支持事务,操作都是原子性。

RDB和AOF的区别

RDB 持久化:是将在指定的时间间隔内生成的数据集备份到磁盘中。(可能丢失一段时间的数据)
AOF 持久化:记录的是服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF可以每秒同步一次(默认方式),也可以每次执行写入命令时同步一次。

详解请看:redis持久化RDB和AOF

mySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据

相关知识:redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。redis 提供 6种数据淘汰策略:
1. volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
2. volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
3. volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
4. allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
5. allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
6. no-enviction(驱逐):禁止驱逐数据

redis相比memcached有哪些优势

  1. memcached的value为String数据类型,Redis的value支持更多的数据类型(String,List,Set,Sorted set,Hash);
  2. Redis的速度比memcached快很多;
  3. Redis支持持久化方式。

Memcache与Redis的区别有哪些?

  1. 存储方式
    Memecache把数据全部存在内存之中,断电后会丢失,数据不能超过内存大小。
    Redis可以将部分数据存放在硬盘上,这样能保证数据的持久性。

  2. 数据支持类型
    Memcache支持字符串数据类型。
    Redis支持String,List,Set,Sorted set,Hash数据类型。

  3. 使用底层模型不同
    它们之间底层实现方式以及与客户端之间通信的应用协议不一样。
    Redis直接自己构建了VM机制,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。

  4. value大小
    Redis的value最大可以达到1GB,而Memcache只有1MB。

参考: redis详解(三)– 面试题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值