这是我参与2022首次更文挑战的第1天,活动详情查看2022首次更文挑战
-
Redis是一个基于内存的高性能key-value数据库。
-
Redis相比memcached有哪些优势?
-
memcached所有的值均是简单的字符串,redis作为其代替者,支持更为丰富的数据类型
-
redis的速度比memcache快
-
redis可以持久化其数据
- Memcache和Redis的区别 Memcache:
- 支持简单数据类型
- 不支持数据持久化存储
- 不支持主从
- 不支持分片 Redis:
- 数据类型丰富
- 支持数据磁盘持久化存储
- 支持主从
- 支持分片
- redis是单线程
redis利用队列技术将并发访问变为串行访问,消除了传统数据库串行控制的开销
- Redis常用5种数据类型
String(字符串)、list(列表)、set(集合)、sorted set(有序集合) 、hash(字典)
- Redis 6种淘汰策略 (当key无设置过期时间,到达redis内存上限,采用该策略)
- 不删除策略,达到最大内存限制时,如果需要更多内存,直接返回错误信息,只能进行读操作,不能进行写操作。
- 所有key通用,优先删除最近最少使用的key
- 所有key通用,随机删除一部分key
- 只限于设置了expire的部分,优先删除最近最少使用的key
- 只限于设置了expire的部分,随机删除一部分key
- 只限于设置了expire的部分,优先删除剩余时间短的key
-
Redis的并发竞争问题 单进程单线程模式,采用队列模式将并发访问变为串行访问,Redis本身没有锁的概念,Redis对于多个客户端连接并不存在竞争,利用setnx实现锁。
-
Redis有两种持久化方案,分别是rdb和aof RDB(快照)持久化:保存某个时间点的全量数据快照
- save:阻塞Redis的服务器进程,直到RDB文件被创建完毕
- BGSAVE:fork出一个子进程来创建RDB文件,不阻塞服务器进程