07_流式计算基础_第2天(Redis基础、应用场景、数据结构及案例) RDB和AOF ---一般有用
课程介绍
课程名称:
Kafka技术增强
注:学习本课程请先学习Kafka基础
课程目标:
通过本模块的学习,能够掌握Storm底层的通信机制、消息容错机制、storm目录树及任务提交流程。
课程大纲:
课程内容
1、Redis概述
l Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的应用程序的完美解决方案。
l Redis从它的许多竞争继承来的三个主要特点:
l Redis数据库完全在内存中,使用磁盘仅用于持久性。
l 相比许多键值数据存储,Redis拥有一套较为丰富的数据类型。String,List,set,map,sortSet
l Redis可以将数据复制到任意数量的从服务器。
2、Redis 优势
l 异常快速:Redis的速度非常快,每秒能执行约11万集合,每秒约81000+条记录。
l 支持丰富的数据类型:Redis支持字符串、列表、集合、有序集合散列数据类型,这使得它非常容易解决各种各样的问题。
l 操作都是原子性:所有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
l 启动方式一:Redis前台默认启动
进入redis安装目录,并启动Redis服务
cd /usr/local/redis/bin/
./redis-server
l 启动方式二: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数据结构
见代码