第十二课记录 Redis

xiaoxiao2021-02-28  94

一、什么是内存数据库?为什么要把数据存入内存?

        1、为什么要把数据存入内存?   ----->   速度快         2、画图: 企业级应用架构发展变化:  B/S结构                         在大数据的背景下,企业级应用架构发展变化         3、了解一下MemCached(缓存)                 问题:                         (1):不支持持久化                         (2):没有丰富的数据类型         4、Redis在大数据实时计算中,可做为Stom、Spark、Streaming、Flink的存储结果位置   

二、安装和配置Redis

        1、Redis是否支持Windows?         2、步骤:                 (1) 解压:  tar -zxvf redis-4.0.1.tar.gz                 (2) 编译:  make  (Redis是用C语言写的, 所以要用make)                 (3) 安装:  make PREFIX=/root/training/redis install   (PREFIX 表示安装目录)         3、Redis 的命令                 [root@localhost bin]# ll                 total 35420                 -rwxr-xr-x. 1 root root 5599518 Sep  1 10:48 redis-benchmark                   #压力测试工具                 -rwxr-xr-x. 1 root root 8309811 Sep  1 10:48 redis-check-aof                   #检查AOF持久化文件                 -rwxr-xr-x. 1 root root 8309811 Sep  1 10:48 redis-check-rdb                   #检查RDB持久化文件                 -rwxr-xr-x. 1 root root 5730542 Sep  1 10:48 redis-cli                         #客户端工具                 lrwxrwxrwx. 1 root root      12 Sep  1 10:48 redis-sentinel -> redis-server    #Redis提供的哨兵机制  ------->  实现Redis的HA                 -rwxr-xr-x. 1 root root 8309811 Sep  1 10:48 redis-server                      #服务端工具         4、Redis的核心配置文件:                  (1) redis.conf                         #mkdir /root/training/redis/conf                         #cp /root/training/redis-4.0.1/redis.conf /root/training/redis/conf                         #vi redis.conf                                 说明:                                  (a) port 6379     --表示Redis默认端口                                 (b) daemonize no  --表示Redis是否以后台启动的方式运行(改为yes)                         #./redis-server ../conf/redis.conf                         #ps -ef|grep redis                 (2)sentinel.conf    ----> 配置Redis的哨兵                         #cp /root/training/redis-4.0.1/sentinel.conf /root/training/redis/conf

三、Redis的基础操作

        1、命令行         2、Java API

四、Redis的事务管理

        1、复习:什么是事务?  ACID:原子、持久、一致、隔离                 关系型数据库和NoSQL数据最库大的区别: NoSQL不(很弱)支持事务                    2、对比:Oracle的事务和Redis的事务(填空题)                                                         Oracle的事务                      Redis的事务                         (1)本质       将DML操作写入日志文件,            将一组操作放入队列中,                                            如果日志写入成功,就表             等待支持                                            示事务成功                           (2)操作       DML语句(insert update delete)     key-value的操作                         (3)提交       commit (也可以用ddl)                   exec(将队列中的操作逐个执行)                         (4)回滚       rollback(断开链接)                        discard(将队列中的操作抛弃)                                            回滚:1显式回滚 2隐式回滚           3、举例: Redis的事务: 模拟转账                 set tom 1000                 set mike 1000                   multi                 decrby tom 100     -- 减100  这个时候执行会打印出一个QUEUED,表示放入到队列中                   incrby mike 100    -- 加100  这个时候执行会打印出一个QUEUED,表示放入到队列中                   exec         4、Redis的锁机制: watch                 set ticket 1                 set tom 1000                   用户一:                         watch ticket ----> 监视值的变化                           multi                         decr ticket                         decrby tom 100                         exec                   用户二: 在用户一提交前, 已将票买走                         decr ticket  

五、Redis的消息机制

        消息的发布与订阅,适合做一个在线聊天室         (1) publish 发布消息                 格式: publish channel 名称 "消息内容"         (2) subscribe 订阅消息                 格式: subscribe channel 名称          (3) psubscribe 使用通配符定义消息                 格式: psubscribe channel *名称 

六、Redis的持久化:  RDB、AOF

        (1) RDB是快照         (2) AOF是基于日志

七、Redis的主从复制

        (1) 集群的作用                 a. 主从备份防止主机宕机                 b. 读写分离, 分担master的任务                 c. 任务分享, 如从服分别担备份工作与计算工作         (2) Redis集群的两种部署方式          (3) Redis主从服务的通信原理         (4) 配置 Redis 的集群(主从模式)                 a. 主节点: 关闭rdb和aof即可                 b. 从节点: slaveof localhost 6379                                  开启 rdb和aof         (5) Redis 集群的高可用性                 a. Redis 2.4+ 自带了一个HA实现Sentinel(哨兵)                 b. 配置文件: sentinel.conf                         b1) sentinel monitor mymaster 192.168.137.11 6379  1                                                         别名          主节点IP            端口  几个哨兵                         b2) sentinel auth-pass <master-name> <password>                                 配置连接主节点的密码                         b3) sentinel down-after-milliseconds mymaster 30000                                 表示多少秒内, 没收到主节点的心跳,哨兵就认为主节点down                         b4) sentinel parallel-syncs mymaster 1                                 选举出新的主节点后,可以同时连接其它从节点的个数                         b5) sentinel failover-timeout mymaster 180000                                 失败切换时, 允许的最在时间         c. redis-sentinel ../etc/sentinel.conf  

八、Redis的HA

   略

转载请注明原文地址: https://www.6miu.com/read-73235.html

最新回复(0)