深入redis专题(一)

119 阅读2分钟

这是我参与2022首次更文挑战的第1天,活动详情查看2022首次更文挑战

  1. Redis是一个基于内存的高性能key-value数据库。

  2. Redis相比memcached有哪些优势?

  • memcached所有的值均是简单的字符串,redis作为其代替者,支持更为丰富的数据类型

  • redis的速度比memcache快

  • redis可以持久化其数据

  1. Memcache和Redis的区别 Memcache:
  • 支持简单数据类型
  • 不支持数据持久化存储
  • 不支持主从
  • 不支持分片 Redis:
  • 数据类型丰富
  • 支持数据磁盘持久化存储
  • 支持主从
  • 支持分片
  1. redis是单线程

redis利用队列技术将并发访问变为串行访问,消除了传统数据库串行控制的开销

  1. Redis常用5种数据类型

String(字符串)、list(列表)、set(集合)、sorted set(有序集合) 、hash(字典)

  1. Redis 6种淘汰策略 (当key无设置过期时间,到达redis内存上限,采用该策略)
  • 不删除策略,达到最大内存限制时,如果需要更多内存,直接返回错误信息,只能进行读操作,不能进行写操作。
  • 所有key通用,优先删除最近最少使用的key
  • 所有key通用,随机删除一部分key
  • 只限于设置了expire的部分,优先删除最近最少使用的key
  • 只限于设置了expire的部分,随机删除一部分key
  • 只限于设置了expire的部分,优先删除剩余时间短的key
  1. Redis的并发竞争问题 单进程单线程模式,采用队列模式将并发访问变为串行访问,Redis本身没有锁的概念,Redis对于多个客户端连接并不存在竞争,利用setnx实现锁。

  2. Redis有两种持久化方案,分别是rdb和aof RDB(快照)持久化:保存某个时间点的全量数据快照

  • save:阻塞Redis的服务器进程,直到RDB文件被创建完毕
  • BGSAVE:fork出一个子进程来创建RDB文件,不阻塞服务器进程