zoukankan      html  css  js  c++  java
  • Memcached与Redis对比,Redis基础笔记回顾

    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)自动:脚本

  • 相关阅读:
    el标签 2016-06-05 21:39 477人阅读 评论(15) 收藏
    5月英语总结 2016-05-31 21:31 395人阅读 评论(12) 收藏
    通过在__init__.py中定义__all__变量,来简化from*import*的书写
    python已安装包的查看方法和requirements.text的使用
    virtualenv安装 以及在PyCharm中的使用
    利用Fitnesse测试外部jar包
    说一下个人对自动化测试以及测试的看法
    oracle 导入sql文件乱码
    问题收集
    Gson应用:从json格式简单字符串中获取value
  • 原文地址:https://www.cnblogs.com/csuliujia/p/10490386.html
Copyright © 2011-2022 走看看