安装
命令安装
安装:
#安装依赖库
yum install cpp binutils glibc-kernheaders glibc-common glibc-devel gcc make wget
## 获取
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
##
tar zxvf redis-5.0.3.tar.gz
mv redis-5.0.3 /usr/local/redis
cd /usr/local/redis
make
cd src/
## make test 可能会出现 You need tcl 8.5 or newer in order to run the Redis test 问题
make test
make install
配置:
外网访问配置:
vi /usr/local/redis/redis.conf
## 方式1
## 将daemonize属性改为yes
## 注释以下绑定的主机地址 # bind 127.0.0.1
## protected-mode no
## 方式2
## 将daemonize属性改为yes(
## protected-mode yes
## bind 0.0.0.0 (安全模式需要 设置方位ip)
## 设置登录密码
内网访问配置
vi /usr/local/redis/redis.conf
## 将daemonize属性改为yes(表明需要在后台运行)
修改密码:
## 临时修改
$ redis-cli -h [ip] -p 6379
$ 127.0.0.1:6379> config set requirepass [密码]
## 永久修改
## 修改 redis.config 中的 requirepass
启动:
## 前台启动redis
./redis-server
## 指定redis.conf文件启动
./redis-server /usr/local/redis/redis.conf
设置开机自启:
## 添加自启脚本
vim /etc/init.d/redis
## 设置redis 权限
chmod 755 /etc/init.d/redis
## 启动redis
/etc/init.d/redis start
## 设置开机启动
cd /etc/init.d/
chkconfig redis on
自启脚本
#!/bin/bash
#
# chkconfig: 2345 10 90
# description: Start and Stop redis
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
REDIS_CLI=/usr/local/redis/bin/redis-cli
PIDFILE=/var/run/redis.pid
CONF="/usr/local/redis/bin/redis.conf"
AUTH="1234"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed."
else
echo "Starting Redis server..."
$EXEC $CONF
fi
if [ "$?"="0" ]
then
echo "Redis is running..."
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE exists, process is not running."
else
PID=$(cat $PIDFILE)
echo "Stopping..."
$REDIS_CLI -p $REDISPORT SHUTDOWN
sleep 2
while [ -x $PIDFILE ]
do
echo "Waiting for Redis to shutdown..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
exit 1
esac
脚本安装(待完善)
docker 安装 (待完善)
常用命令
## 启动redis
redis-server /usr/local/redis/etc/redis.conf
# 停止redis
./bin/redis-cli shutdown
## 停止redis
pkill redis
## 卸载redis
rm -rf /usr/local/redis //删除安装目录
rm -rf /usr/bin/redis-* //删除所有redis相关命令脚本
rm -rf /root/download/redis-4.0.4 //删除redis解压文件夹
## 查看redis是否启动,端口号为默认的6379
ps -ef|grep redis
## 查看进程:
ps -aux | grep redis
#检测6379端口
netstat -antp|grep 6379
## 登录redis自带的基于命令行的Redis客户端
redis-cli -h ip地址 -p
redis配置
daemonize:如需要在后台运行,把该项的值改为yes
pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址
bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项
port:监听端口,默认为6379
timeout:设置客户端连接时的超时时间,单位为秒
loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice
logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上
database:设置数据库的个数,默认使用的数据库是0
save:设置redis进行数据库镜像的频率
rdbcompression:在进行镜像备份时,是否进行压缩
dbfilename:镜像备份文件的文件名
dir:数据库镜像备份的文件放置的路径
slaveof:设置该数据库为其他数据库的从数据库
masterauth:当主数据库连接需要密码验证时,在这里设定
requirepass:设置客户端连接后进行任何其他指定前需要使用的密码
maxclients:限制同时连接的客户端数量
maxmemory:设置redis能够使用的最大内存
appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当 redis重新启动时,会从该文件恢复出之前的状态
appendfsync:设置appendonly.aof文件进行同步的频率
vm_enabled:是否开启虚拟内存支持
vm_swap_file:设置虚拟内存的交换文件的路径
vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0
vm_page_size:设置虚拟内存页的大小
vm_pages:设置交换文件的总的page数量
vm_max_thrrads:设置vm IO同时使用的线程数量
解决问题
You need tcl 8.5 or newer in order to run the Redis test”问题解决
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
tar -xzvf tcl8.6.1-src.tar.gz -C /usr/local/
cd /usr/local/tcl8.6.1/unix/
./configure
make
make install
报 cc 命令找不到,需要安装gcc:
yum -y install gcc automake autoconf libtool make
解决redis启动时的三个警告
考虑到redis一般都是部署在服务器上作为服务存在的。所以,本文的解决方案都是持久性配置,不是临时配置。
第一个警告
将net.core.somaxconn = 1024添加到/etc/sysctl.conf中,然后执行sysctl -p生效配置。
第二个警告
将vm.overcommit_memory = 1添加到/etc/sysctl.conf中,然后执行sysctl -p生效配置。
第三个警告
将echo never > /sys/kernel/mm/transparent_hugepage/enabled添加到/etc/rc.local中,然后执行source /etc/rc.local生效配置。