redis

Redis 是一款内存数据库,适用于全页缓存、会话缓存、发布订阅、队列等多种场景。其优势在于速度快、支持丰富数据类型和事务,但存在缓存雪崩、一致性等问题。相比 Memcached,Redis 支持持久化和更多数据结构。为解决并发竞争,可使用连接池和分布式锁。Redis 提供多种持久化策略如 RDB 和 AOF,支持数据分区和集群扩容。
摘要由CSDN通过智能技术生成

redis是什么?

Redis 是一个基于内存的高性能key-value数据库。 数据存储在内存中,访问的速度较快

什么时候用到redis?

  • 会话缓存
  • 全页缓存
  • 发布/订阅
  • 队列
  • 排行榜/计数器

redis的优点有哪些?

  • redis的速度快,因为数据存储在内存上,相比于关系型的数据库来说,读写的速度更快。
  • 支持丰富的数据类型,string、set、hash、list 、sort set
  • 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行 事务是一组操作的集合,事务不具有原子性
  • 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

redis的缺点由哪些

  • 缓存雪崩的问题
    (缓存在同一时间内大量过期,随后大量的请求落在数据可上导致连接异常)
  • 缓存和数据库之间的数据一致性的问题
    (缓存无法保证强缓存一致性,如果允许有一定的不一致性的出现,可以使用缓存)
  • 缓存击穿的问题
    (恶意用户模拟请求很多缓存中不存在的数据,由于缓存中不存在这些数据,导致这些请求落在数据库上,数据库中也没有,返回为空,一直重复,导致数据库异常)
  • 缓存的并发竞争问题
    (多个客户端同时发送请求,由于redis 是单线程,在同一时刻只能处理一个请求,其他的请求会阻塞等待)

redis 相比于memcached由哪些好处

  • memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型
  • redis的速度比memcached快很多
  • redis可以持久化其数据
  • memcached采用的是多线程非阻塞IO复用,redis采用的是单线程的IO复用,单线程消除了并发控制的开销。

redis 采用单进程单线程的为什么这么快

消除了传统数据库并发控制产生的开销
单线程消除了线程/进程频繁的上下文切换的开销
纯内存操作
采用非阻塞IO复用的机制

redis 并发竞争问题如何解决

redis 采用了单进程单线程,采用队列模式将并发访问改为串行访问,对于多个客户端链接不存在竞争。但是如果多个客户端并发请求连接的过程,可能出现连接超时、阻塞、客户端连

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值