redis的相关问题-自我总结

redis
定义:是c语言编写的一个高性能键值对数据库,是内存型数据库(数据保存在内存中,速度快) 而mysql是关系型数据库,数据保存在磁盘中,数据访问也就慢
redis适合放一些频繁使用,比较热的数据,因为是放在内存中,读写速度都非常快。
目前大多数公司的存储都是mysql + redis,mysql作为主存储,redis作为辅助存储被用作缓存,加快访问读取的速度,提高性能。。。。。
多用途:Redis是一个多实用工具,可用于多种用例,如:缓存,消息队列(发布/订阅),通知,key值过期等等。

  1. Memcache与Redis的区别都有哪些?
    1)、存储方式
    Memecache把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。
    Redis有部份存在硬盘上,这样能保证数据的持久性。
    2)、数据支持类型
    Memcache对数据类型支持相对简单。
    Redis有复杂的数据类型。
    3)、使用底层模型不同
    它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。
    Redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。
    4),value大小
    redis最大可以达到1GB,而memcache只有1MB

redis提供了两种持久化的方式,分别是RDB(redis dataBase)和AOF(Append Only File)
RDB,简而言之,就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上
AOF,则是换了一个角度来实现持久化,那就是讲redis执行过的所有写指令记录下来,在下次redis重新启动时,
只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了。

redis集群至少需要3主3从
主从复制:为了解决单点问题,需要有主从两台数据库,主数据库可以进行读写操作,当写操作导致数据变化时会自动将数据同步给从数据库。而从数据库一般是只读的,并接受主数据库同步过来的数据。
复制原理:当从数据库启动时,会向主数据库发送sync命令,主数据库接收到sync后开始在后台报错快照rdb,在保存快照期间受到的命令缓存起来,
当快照完成时,主数据库会将快照和缓存的命令一块发送给从。复制初始化结束。之后,主每受到1个命令就同步发送给从。
哨兵模式:当主数据库遇到异常中断服务后,开发者可以通过手动的方式选择一个从数据库来升格为主数据库,以使得系统能够继续提供服务。然而整个过程相对麻烦且需要人工介入,难以实现自动化。
哨兵的作用就是监控redis主、从数据库是否正常运行,主出现故障自动将从数据库转换为主数据库。
顾名思义,哨兵的作用就是监控Redis系统的运行状况。它的功能包括以下两个。
(1)监控主数据库和从数据库是否正常运行。
(2)主数据库出现故障时自动将从数据库转换为主数据库。
集群模式:即使使用哨兵,redis每个实例也是全量存储,每个redis存储的内容都是完整的数据,浪费内存且有木桶效应。为了最大化利用内存,
可以采用集群,就是分布式存储。即每台redis存储不同的内容(也就是说一个Key只能被分配到一台机器上)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值