一. 关系数据库和非关系数据库
1.1 关系型数据库
- 一个结构化的数据库,创建在关系模型基础上
- 一般面向记录
- 包括
oracle MySQL SQL Server, Microsoft Access, DB2
1.2 非关系型数据库
- 除了主流关系型数据库外的数据库,都认为是非关系型
- 包括
Redis, MongBD, Hbase, CouhDB 等
1.3 非关系数据库产生背景
- High performance-------对数据库高并发读写需求
- Huge Storage----------对海量数据高效存储与访问需求
- High Scalability && High Availability------对数据库高可扩展性与高可用性需求
1.4 Redis 简介

二. Redis安装部署
2.1 Redis的安装步骤

2.2 编译安装Redis
把redis软件包redis-5.0.7.tar.gz上传到/opt
[root@localhost opt]# tar zxvf redis-5.0.7.tar.gz
[root@localhost opt]# cd redis-5.0.7/
[root@localhost redis-5.0.7]# make
[root@localhost redis-5.0.7]# make prefix=/usr/local/redis install //安装完后直接在/usr/local/bin里会有redis 的命令,所以不用做命令软连接
2.3 设置Redis相关配置文件
[root@web1 utils]# /opt/redis-5.0.7/utils/install_server.sh
Welcome to the redis service installer
This script will help you easily set up a running redis server
Please select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log]
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server]
Selected config:
Port : 6379
Config file : /etc/redis/6379.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!
注意,一直回车保持默认就行了
2.4 Redis 进程控制

三. Redis 常用配置文件选项
- bind:监听的主机地址
- port:端口
- daemonize yes:启用守护进程
- pidfile:指定PID文件
- loglevel notice: 日志级别
- logfile:指定日志文件
四. Redis 数据库常用命令
4.1 redis-cli命令行工具
连接本地数据库
获取命令帮助

存取数据命令
4.2 key 相关命令
- keys::获取符合规则的键值列表
- exits:判断键值是否存在、
- del:删除当前数据库指定key
- type:获取key对应value值类型
- rename(覆盖) /rename (不覆盖):对已有的key进行重命名
- dbsize:查看当前数据库中key的数目
4.3 redis-benchmark测试工具
- -h:指定服务器主机名
- -p:指定服务器端口
- -c:指定并发连接数
- -n:指定请求数
- -d:以字节的形式指定SET/GET值的数据大小
- -q:强制退出Redis,仅显示query/sec值

4.4 Redis多数据库操作
- Redis支持多数据库,默认支持16个数据库,0-15命名
- 多数据库相互独立,互不干扰
- 多数据库常用命令
多数据库间切换:select index
多数据库间移动数据:move 1
清除数据库内数据:flushall
五. Redis 持久化
5.1 持久化概述
- Redis 是运行在内存中,内存中的数据断电丢失
- 为了能够重用Redis数据,或者防止系统故障,需要将Redis中的数据写入到磁盘空间中,即持久化
5.2 持久化分类
- RDB方式:创建快照的方式获取某一时刻Redis 中所有数据的副本
- AOF方式:将执行的写命令写到文件的末尾,以日志的方式来记录数据的变化
5.3 RDB持久化
- Redis 的默认持久化方式
- 默认文件名 dump.rdb
- 触发条件
- 在指定的时间间隔内,执行指定次数的写操作(配置文件控制)
- 执行save或者是bgsave (异步)命令
- 执行flushall命令,清空数据库所有数据
- 执行shutdown 命令,保证服务器正常关闭且不丢失任何数据
- 优缺点
- 适合大规模的数据恢复
- 如果业务对数据完整性和一致性要求不高,RDB是很好的选择
- 数据完整性和一致性不高
- 备份时占用内存
- 通过RDB文件恢复数据
- 将dump.rdb文件拷贝到redis的安装目录的bin目录下,重启redis服务既可
- 配置文件选项

5.4 AOF持久化
- Redis 默认不开启
- 迩补RDB的不足(数据的不一致性)
- 采用日志的形式来记录每个写操作,并追加到文件中
- Redis 重启会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作
- 根据AOF文件恢复数据
- 将appendonly.aof 文件拷贝到Redis 的安装目录的bin 目录下,重启Redis服务即可
- 配置文件选项

- AOF的重写机制
- AOF的工作原理是将写操作追加到文件中,文件的冗余内容会越来越多
- 当AOF文件的大小超过所设定的阈值时,Redis就会对AOF文件的内容压缩
- AOF重写的原理
- Redis会fork 出一条新进程,读取内存中的数据(并没有读取旧文件),并重新写到一个临文件中,最后替换旧的aof文件
- AOF的重写配置

六. Redis性能管理
6.1 内存碎片率

6.2 内存使用率

6.3 回收key

版权声明:本文为weixin_48192495原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。