您的位置:首页 > 数据库 > Redis

redis 数据库 3.0.5 源码安装

2015-12-31 11:29 796 查看
Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案。

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

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

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

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

Redis 优势

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

支持丰富的数据类型:Redis支持最大多数开发人员已经知道像列表,集合,有序集合,散列数据类型。这使得它非常容易解决各种各样的问题,因为我们知道哪些问题是可以处理通过它的数据类型更好。

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

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

redis 3.0.5 源码安装

安装 make 和 gcc-c++编译器

yum -y install make gcc-c++

解包安装

tar zxf redis-3.0.5.tar.gz

cd redis-3.0.5

make MALLOC=libc

更改目录

mv redis-3.0.5 /usr/local/redis

启动

/usr/local/redis/src/redis-server /usr/local/redis/redis.conf

注意:这时候会有三个警告信息!



警告1:

WARNING overcommit_memory is set to 0! Background save may fail under low memory condition.

To fix this issue add ‘vm.overcommit_memory = 1’ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.

过量使用内存设置为0!在低内存环境下,后台保存可能失败。为了修正这个问题,请在/etc/sysctl.conf 添加一项 ‘vm.overcommit_memory = 1’ ,然后重启(或者运行命令’sysctl vm.overcommit_memory=1’ )使其生效。

解决:

vim /etc/sysctl.conf

vm.overcommit_memory = 1

sysctl -p

使用数字含义:

0:表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。

1:表示内核允许分配所有的物理内存,而不管当前的内存状态如何。

2:表示内核允许分配超过所有物理内存和交换空间总和的内存

警告2:

WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128

tcp 511 不能设置是因为/proc/sys/net/core/somaxconn 设置为128的低值。

somaxconn 定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数 , 默认值为128 , 需要改成511才可以

解决:

echo 511 > /proc/sys/net/core/somaxconn

警告3:

WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled’ as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.

解决:

echo never > /sys/kernel/mm/transparent_hugepage/enabled

never 关闭,不使用透明内存

alway 尽量使用透明内存,扫描内存,有512个 4k页面可以整合,就整合成一个2M的页面

madvise 避免改变内存占用

ok,这时候可以正常启动了 (无警告启动)



安装到这一步结束,下面配置下 redis.conf 配置档

创建 log 和 data 数据目录

mkdir -p /var/log/redis
mkdir -p /data/redis/


修改下配置档参数

vim /usr/local/redis/redis.conf

daemonize yes                          # 允许 redis 以后台运行
logfile "/var/log/redis/redis.log"     # 指定 redis 日志目录
appendonly yes                         # 开启 .aof 数据 (默认 dump.rdb 也是开启的)
bind 10.1.0.100                        # 监听 ip 地址
dir /data/redis                        # redis 数据存放目录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: