1、Redis简介
Redis是一个开源的K-V的数据库,属于NoSql数据库(泛指:非关系型数据库),并且与Memcached一样,为了保证效率,数据都是缓存在内存中,并基于内存操作,性能较高。它所支持存储的value类型相对更多,包括String、list、set、zset、Hash,在内存中设计了各种数据类型,让业务能够高速原子的访问这些数据结构,并不需要关系持久存储的问题,从架构上解决了关系型数据库存储需要走一些弯路的问题。所以作为缓存应用,与其类似的Memcached这类key/value存储的不足,在高并发查询时可以对关系型数据库起到很好的性能补充作用,此外与Memcached最大的区别在于:Redis会周期性的把更新的数据写入磁盘或者把修改的操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步,故:Redis支持主从同步,数据可以从主服务器向任意数据从服务器上同步,从服务器可以是关联其他从服务器的主服务器。
2、Redis安装步骤
2.1安装坏境
1> 服务器:CentOS 6.8 64 位
2> redis_version:3.2.8
2.2安装步骤
1. 创建安装路径:/usr/local/redis
2. 下载地址:http://redis.googlecode.com/files/redis-3.2.8.tar.gz
3. 解压安装:
➢ tar -zxvf redis-3.2.8.tar.gz
➢ make PREFIX=/usr/local/redis install
➢ mkdir /usr/local/redis/etc
注:可能会出现的错误提示如下:
>>提示 1:
make[3]: gcc:命令未找到
>>解决
yum -y install gcc-c++
>>提示 2:
在包含自 adlist.c:34 的文件中:
zmalloc.h:50:31: 错误:jemalloc/jemalloc.h:没有那个文件或目录
zmalloc.h:55:2: 错误:#error "Newer version of jemalloc required"
>>解决
make 的时候加上 MALLOC=libc 参数
make PREFIX=/usr/local/redis MALLOC=libc install
4.配置
➢ 设置内存分配策略(可选,根据服务器的实际情况进行设置,可选值:0、1、2 )
0:表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1:表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2:表示内核允许分配超过所有物理内存和交换空间总和的内存值得注意的一点是,Redis 在 dump 数据的时候,会 fork 出一个子进程,理论上 child进程所占用的内存和 parent 是一样的,比如 parent 占用的内存为 8G,此时也要同样分配 8G 的内存给 child,如果内存无法负担,往往会造成 Redis 服务器的 down 机或者 IO 负载过高,效率下降。所以较为优化的内存分配策略应该设置为 1(表示内核允许分配所有的物理内存,而不管当前的内存状态如何)。
➢ 开启 Redis 端口(6379),修改防火墙配置文件
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
重新加载规则:service iptables restart
➢ 指定 Redis 的 log 文件所在目录
设置 Redis 配置文件 redis.conf 中参数 logfile
➢ 指定 RedisDB 的数据文件所在目录
设置 Redis 配置文件 redis.conf 中参数 dir
➢ 设置 Redis 密码
Redis 默认无密码,可设置密码,设置 redis 配置文件 redis.conf 中的参数
requirepass 的值即可,修改完毕后重启 Redis 服务。
5. 启动/停止 Redis:
➢ 启动:redis-server /usr/local/redis/etc/redis.conf
➢ 停止:kill -9 id