认识Redis 主从同步、事务和Memcached的区别

08- 什么是 Redis 主从同步?

Redis 的主从同步(replication)机制,允许 Slave 从 Master 那里,通过网络传输拷贝到完整的数据备份,从而达到主从机制。

主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库同步过来的数据。一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库。

主从数据同步主要分二个阶段 :

第一阶段 : 全量复制阶段

  • slave节点请求增量同步

  • master节点判断replid,发现不一致,拒绝增量同步

  • master将完整内存数据生成RDB,发送RDB到slave

  • slave清空本地数据,加载master的RDB

第二阶段 : 增量复制阶段

  • master将RDB期间的命令记录在repl_baklog,并持续将log中的命令发送给slave

  • slave执行接收到的命令,保持与master之间的同步

09- Redis分片集群中数据是怎么存储和读取的 ?

Redis集群采用的算法是哈希槽分区算法。Redis集群中有16384个哈希槽(槽的范围是 0 -16383,哈希槽),将不同的哈希槽分布在不同的Redis节点上面进行管理,也就是说每个Redis节点只负责一部分的哈希槽。在对数据进行操作的时候,集群会对使用CRC16算法对key进行计算并对16384取模(slot = CRC16(key)%16383),得到的结果就是 Key-Value 所放入的槽,通过这个值,去找到对应的槽所对应的Redis节点,然后直接到这个对应的节点上进行存取操作

10- 你们用过Redis的事务吗 ? 事务的命令有哪些 ?

Redis 作为 NoSQL 数据库也同样提供了事务机制。在 Redis 中,MULTI / EXEC / DISCARD / WATCH 这四个命令事务的相关操作命令

我们在开发过程中基本上没有用到过Redis的事务

11- Redis 和 Memcached 的区别有哪些?

  1. Redis 提供复杂的数据结构,丰富的数据操作 , Memcached 仅提供简单的字符串。

  2. Redis原生支持集群模式 , Memcached不支持原生集群

  3. Memcached 不支持持久化存储,重启时,数据被清空, Redis 支持持久化存储,重启时,可以恢复已持久化的数据

12- Redis的内存用完了会发生什么?

如果达到设置的上限,Redis 的写命令会返回错误信息( 但是读命令还可以正常返回。) 也可以配置内存淘汰机制, 当 Redis 达到内存上限时会冲刷掉旧的内容。

相关推荐

  1. RedisMemcached有什么区别

    2024-06-16 22:24:03       54 阅读
  2. Redis memcache 有什么区别

    2024-06-16 22:24:03       59 阅读
  3. Redis主从同步

    2024-06-16 22:24:03       36 阅读
  4. redis事务mysql中事务有什么区别

    2024-06-16 22:24:03       22 阅读
  5. 多角度剖析事务事件区别

    2024-06-16 22:24:03       30 阅读
  6. 同步异步区别

    2024-06-16 22:24:03       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-16 22:24:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-16 22:24:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-16 22:24:03       82 阅读
  4. Python语言-面向对象

    2024-06-16 22:24:03       91 阅读

热门阅读

  1. 【洛谷题解】P5704 【入门1】顺序结构 字母转换

    2024-06-16 22:24:03       34 阅读
  2. Web前端中表示上标:深度解析与实战技巧

    2024-06-16 22:24:03       26 阅读
  3. 设计模式之享元模式

    2024-06-16 22:24:03       32 阅读
  4. carbondata连接数优化

    2024-06-16 22:24:03       32 阅读
  5. 【C++】计算代码中程序的时间差

    2024-06-16 22:24:03       32 阅读
  6. 10:Hello, World!的大小

    2024-06-16 22:24:03       31 阅读
  7. Shell 学习笔记 - 变量的类型 + 变量的赋值

    2024-06-16 22:24:03       23 阅读
  8. 4.组件间通信-v-model

    2024-06-16 22:24:03       32 阅读
  9. 路由组件和非路由组件区别:

    2024-06-16 22:24:03       33 阅读
  10. LeetCode热题3.无重复的最长字串

    2024-06-16 22:24:03       32 阅读
  11. 在 PHP 中怎样实现实时数据推送功能?

    2024-06-16 22:24:03       30 阅读
  12. 2813. 子序列最大优雅度 Hard

    2024-06-16 22:24:03       31 阅读
  13. springcloud入门与实践

    2024-06-16 22:24:03       24 阅读