课程介绍

课程名称:

Kafka技术增强 

注:学习本课程请先学习Kafka基础

课程目标:

通过本模块的学习,能够掌握Storm底层的通信机制、消息容错机制、storm目录树及任务提交流程。

课程大纲:

课程内容

1、Redis概述

l Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的应用程序的完美解决方案。

l Redis从它的许多竞争继承来的三个主要特点:

l Redis数据库完全在内存中,使用磁盘仅用于持久性

l 相比许多键值数据存储,Redis拥有一套较为丰富的数据类型。String,List,set,map,sortSet

Redis可以将数据复制到任意数量的从服务器。

2、Redis 优势

l 异常快速:Redis的速度非常快,每秒能执行约11万集合,每秒约81000+条记录。

l 支持丰富的数据类型:Redis支持字符串、列表、集合、有序集合散列数据类型,这使得它非常容易解决各种各样的问题。

操作都是原子性:所有Redis操作是原子的,这保证了如果两个客户端同时访问的Redis服务器将获得更新后的值。----计数器

l 多功能实用工具:Redis是一个多实用的工具,可以在多个用例如缓存,消息,队列使用(Redis原生支持发布/订阅),任何短暂的数据,应用程序,如Web应用程序会话,网页命中计数等。

3、Redis安装部署

3.1、Redis下载、编译、安装 

l 下载redis3.0.5

wget http://download.redis.io/releases/redis-3.0.5.tar.gz

l 解压文件,并创建软件连接

tar -zxvf  redis-3.0.5.tar.gz -C /export/servers/

ln  –s  redis-3.0.5/  redis

l 编译redis源码

cd /export/servers/redis

make(先安装gcc) 

l 将编译后的可执行文件安装到/user/local/redis

make PREFIX=/usr/local/redis install

3.2、启动Redis

启动方式一:Redis前台默认启动 

进入redis安装目录,并启动Redis服务

cd /usr/local/redis/bin/

./redis-server

启动方式二:Redis使用配置文件启动 

拷贝源码中的redis.conf文件到redis的安装目录 

  cp /export/servers/redis/redis.conf        /usr/local/redis/

修改redis.conf的属性 

  daemonize no  è daemonize yes

启动redis服务 

cd  /usr/local/redis

 bin/redis-server    ./redis.conf

3.3、日志文件及持久化文件配置 

l 修改生成默认日志文件位置

logfile "/usr/local/redis/logs/redis.log"

l 配置持久化文件存放位置 

  dir /usr/local/redis/data/redisData

3.4、Redis客户端使用

<dependency>

<groupId>redis.clients</groupId>

<artifactId>jedis</artifactId>

<version>2.8.0</version>

</dependency>

4、Redis持久化

有两种持久化方案:RDB和AOF

1) RDB方式按照一定的时间间隔对数据集创建基于时间点的快照。

2)AOF方式记录Server收到的写操作到日志文件,Server重启时通过回放这些写操作来重建数据集。该方式类似于MySQL中基于语句格式的binlog。当日志变大时Redis可在后台重写日志。

l AOF持久化配置

1)修改redis.config配置文件,找到appendonly。默认是appendonly no。改成appendonly yes

2)再找到appendfsync 。默认是 appendfsync everysec

appendfsync always  

  #每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用  

appendfsync everysec    

 #每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐  

appendfsync no    

#完全依赖os,性能最好,持久化没保证  

l RDB持久化配置

默认情况下,Redis保存数据集快照到磁盘,名为dump.rdb的二进制文件。可以设置让Redis在N秒内至少有M次数据集改动时保存数据集,或者你也可以手动调用SAVE或者BGSAVE命令。 例如,这个配置会让Redis在每个60秒内至少有1000次键改动时自动转储数据集到磁盘

save 60 1000 

5、Redis数据结构

见代码