赞
踩
redis属于典型的内存键值数据库,不同键值数据库⽀持的 key 类型⼀般差异不⼤,⽽ value 类型则有较⼤差别。我们在对键值数据库进⾏选型时,⼀个重要的考虑因素是它⽀持的 value 类型。例如,Memcached ⽀持的value类型仅为 String 类型,⽽ Redis ⽀持的 value 类型包括了String、哈希表、 列表、集合。Redis能够在实际业务场景中得到广泛的应用,就是得益于支持多样化类型的value。从使⽤的⻆度来说,不同value类型的实现,不仅可以⽀撑不同业务的数据需求,而且也隐含着不同数据结构在性能、空间效率等方面的差异,从而导致不同的value操作之间存在着差异。
echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
echo "net.core.somaxconn=511" >> /etc/sysctl.conf
vim /etc/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
echo 511 > /proc/sys/net/core/somaxconn
chmod +x rc.local
内核参数解释
参数名称 | 参数介绍 | 参数实现 |
---|---|---|
内存⼤⻚ | 操作系统提供的内存⼤⻚机 制,其优势是,可以在⼀定程 序上降低应⽤程序申请内存的 次数。 对于 Redis 这种对性能和延迟 极其敏感的数据库来说,我们 希望 Redis 在每次申请内存 时,耗时尽量短,所以我不建 议你在 Redis 机器上开启这个 机制。 | echo never > /sys/kernel/mm/transparent_hugepage/enabled |
内存分配 | Linux操作系统对⼤部分申请内 存的请求都回复yes,以便能运 ⾏更多的程序。因为申请内存 后,并不会⻢上使⽤内存,这 种技术叫做overcommit。 建议 配置允许系统可以分配所有的 物理内存。防⽌fork任务因内存⽽失败。 | 推荐设置为1 代表允许超量使⽤直到⽤完。 echo “vm.overcommit_memory=1” >> /etc/sysctl.confsysctl vm.overcommit_memory=1 |
socket连 接队列 | 表示socket监听的backlog上 限。默认值是128。 backlog就是socket的监听队列,当⼀个请求尚未被处理或 建⽴时,他会进⼊backlog。⽽ socket server可以⼀次性处理 backlog中的所有请求,处理后 的请求不再位于监听队列中。 当server处理请求较慢,以⾄ 于监听队列被填满后 | #推荐将该值调整⼤ echo 1280 > /proc/sys/net/core/somaxconn |
指定安装目录
mkdir -p /usr/local/redis/{bin,conf,log,run,data}
进入redis安装目录
make && cd src
将执行文件redis-benchmark、redis-check-aof、redis-check-dump、redis-cli、redis-sentinel、redis-server拷贝至/usr/local/redis/bin下
将配置文件拷贝至
cp …/redis.conf /usr/local/redis/conf
修改配置文件
bind 如果没用通过bind命令明确绑定ip,redis可以监听到请求过来的所有网络接口, bind后面拼接1个或多个ip地址,那么该redis实例只能监听到来自这几个ip的请求, 举例: bind 192.168.1.100 10.0.0.1 bind 127.0.0.1 ::1 redis默认配置的是只允许本机访问:bind 127.0.0.1 如果需要redis允许其他ip访问,那么注释掉默认配置即可:#bind 127.0.0.1 protected-mode protected mode是一个安全保护层,用来避免redis实例暴漏在互联网被访问或者利用。 如果protected-mode yes开启保护模式并且没有通过bind绑定外部的ip地址并且没有通过requirepass配置密码,那么该redis实例只能接受本地127.0.0.1回环地址的连接。 Redis默认是开启保护模式的:protected-mode yes,如果想运行其他主机访问,那么可以将保护模式关闭:protected-mode no。 port port用来配置redis接受连接的端口, 默认配置的是6379:port 6379 daemonize 默认配置:daemonize no,redis默认不是以守护进程的方式后台运行,如果想后台运行,开启配置:daemonize yes
以上参数是为了基础部署使用,实际生产环境请参照实际运行进行调整。
./redis-server ../redis.conf
./redis-cli -p 端口号 [-a password] shutdown
cp ../utils/redis_init_script /etc/init.d/redis #不同版本可能位置不同 /etc/init.d/redis Port : 6379 Config file : /usr/local/redis/conf/redis.conf Log file : /usr/local/redis/log/redis.log Data dir : /usr/local/redis/data Executable : /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf Cli Executable : /usr/local/redis/bin/redis-cli # redis Start up the redis server daemon # # chkconfig: 2345 55 25 添加chkconfig 开机启动 .... redis.service [Unit] Description=Redis Server After=network-online.target [Service] Type=forking PIDFile=/var/run/redis_6379.pid ExecStart=/etc/init.d/redis start ExecStop=/etc/init.d/redis stop ExecReload=/etc/init.d/redis reload PrivateTmp=true [Install] WantedBy=multi-user.target
Redis 4.0及以上版本通常支持ARM处理器,特别是Raspberry Pi作为主平台。Redis的每一个新版本都在Pi环境中进行了测试。
以上是Redis服务的基本部署,有任何相关问题,欢迎留言讨论。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。