Memcached

1、为什么要把数据存入内存?快

2、Memcached和Redis的区别

(1)Memcached缓存、Redis数据库,Memcached不支持持久化到磁盘

(2)Redis提供了丰富的数据类型

3、Memcached的体系架构

4、安装和配置Memcached和操作

(1)需要libevent的支持

5、Memcached路由算法:客户端路由

(1)求余数Hash

(2)一致性Hash

6、Memcached的主主复制:使用Memcached带复制功能

7、Memcached借助keepalived软件实现HA(主节点挂断,从节点变成主节点),Redis利用哨兵机制来实现HA

Redis

1、常见的NoSQL数据库

(*)Redis:基于内存的NoSQL数据库

(*)MongoDB:基于文档(BSON文档)型的NoSQL

(*)HBase:面向列、基于HDFS之上的NoSQL数据库

HBase表 ---->HDFS目录

(*)Cassandra:面向列、去中心化

2、安装和配置Redis

核心的配置文件:conf/redis.conf

3、Redis提供的命令脚本

redis-benchmark:Redis提供的压力测试工具

redis-check-aof:检查AOF文件

redis-check-dump:检查RDB文件

redis-cli:客户端

redis-sentinel -> redis-server 哨兵

redis-server:服务器端

4、操作Redis、数据类型

通常用List链表的单线程性质实现秒杀的功能

5、消息机制

(*)消息的类型:

(1)Topic:主题(广播):Redis只支持Topic

(2)Queue:队列(点对点)

(*)消息通信的方式

(1)同步,如ATM机

(2)异步

(*)常见的消息系统

(1)Redis:只支持Topic

(2)Kafka:只支持分布式Topic,topic由分区组成

(3)JMS:Java Messaging Service标准

(*)Weblogic

(*)Apache Camel

(*)Redis命令:指定channel 频道

publish

subscribe 只订阅一个消息

psubscribe:通配符,订阅多个消息

6、事务

(1)复习:事务 transaction的ACID四大特性

(2)对比Oracle和Redis的事务

Oracle                            Redis

本质:把操作写入日志redolog      把一组操作放入队列(批处理)

开启:自动开启(DML语句)        multi

提交:commit、DDL、DCL           exec

正常关机

回滚:rollback、异常退出         discard(正常提交后无法回滚)

非正常关机

分布式锁:watch、multi、exec,乐观锁

7、Redis持久化

(1)RDB:默认,快照dump

参数:save参数

save 900 1    在15分钟内,如果有1个key的value发生变化

save 300 10   在5分钟内,如果有10个key的value发生变化

save 60 10000 在60秒内,如果有10000个key的value发生变化

优点:恢复快

缺点:在两次RDB之间,造成数据的丢失

(2)AOF: append only file 客户端的日志,如果RDB和AOF同时设置,默认使用AOF进行恢复

(*)默认:禁用

(*)AOF的策略:默认每隔1秒

(*)优点:保证数据安全

缺点:恢复慢

8、Redis主从复制:

目的:(1)读写分离,主节点写入数据、从节点读取数据   (2)任务分离

(*)主从架构:Redis

HDFS、Yarn、HBase、Spark、Storm ----> ZooKeeper

(*)两种形式

(1)星型模型

(2)线性模型

(*)主从复制的过程:主从复制容易存在单点故障(例如主节点故障,利用哨兵机制解决单点故障问题)

(1)从节点启动,向主节点发送同步请求

(2)主节点发送RDB文件给从节点

(3)主节点发送AOF文件给从节点,从节点后续同步的是AOF

9、Redis的代理分片

分发客户端的读数据请求至各个slave,负载均衡。

10、Redis的HA:单点故障:哨兵机制

哨兵监听master的心跳,若心跳down掉,则执行HA

分为两步:1.选择一个slave作为新的master

2.将其他slave连接至新的master

3.客户端的写数据请求连接哨兵,哨兵连接master,因为只有哨兵知道哪个是真正的当前master

Redis Cluster

核心概念:slot槽,数据存储和管理的基本单位

1、3.0以后,数据分布式存储的解决方案2

2、slot范围: 0~16383,每个主从节点维护一定数据量的slot槽

3、将key进行hash从而得到对应的槽号,从而实现数据的分布式存储

4、Redis Cluster本身是HA的,不需要使用哨兵

5、去中心化,虽然仍有主从节点,但本质上主从节点可以互换

6、配置Redis Cluster

(1)手动

(2)自动:脚本

最新文章

  1. Implement strStr() [LeetCode]
  2. hihocoder 1196 高斯消元.二
  3. 学习jsp(3)
  4. C# WinForm的SplitContainer控件固定Panel大小[转]
  5. PHPCMS v9构建模块 - 实例之企业服务模块
  6. KVC和KVO
  7. 首页导航点击A连接跳转并添加上背景色,
  8. Java单例模式再加强——按组多单例
  9. 06.十分钟学会表达式语言EL
  10. @Autowired注解在抽象类中实效的原因分析
  11. [apache2.4]configure: error: APR not found. Please read the documentation.
  12. android应用资源预编译,编译和打包全解析
  13. opencv的一些功能代码
  14. flask第九篇——url_for【2】
  15. Django 自定义
  16. rabbitmq windows 安装,更改配置文件路径的问题(管理页面不显示的问题)
  17. 国际化实现之基于jquery
  18. Caffe训练AlexNet网络模型——问题二
  19. Java IO:BIO和NIO差别及各自应用场景
  20. [HNOI2004] 打砖块

热门文章

  1. WCF异常信息
  2. CSS3 transition 过度
  3. ASP.NET Core2,通过反射批量注入程序集
  4. StreamRead和StreamWriter的使用
  5. 装饰器模式(Decorator Pattern)
  6. Java虚拟机 - 符号引用和直接引用理解
  7. Code Signal_练习题_reverseParentheses
  8. centos 快速安装wordpress
  9. PyCharm 自定义模版
  10. Spring Hibernate JPA 联表查询 复杂查询