redis安装(小节1)
Linux安装Redis及使用
官方下载地址: download.redis.io/releases/
实验:windows 安装 redis
- Windows 版 Redis 下载地址: github.com/MicrosoftAr… 强烈不推荐在生产环境使用 Windows 系统运行 Redis 服务。
解压后目录
- 编辑配置文件并执行 redis-server.exe:
- cd C:\Users\ZhangShiJie\Desktop\Redis-x64-3.0.504
- redis-server.exe redis.windows.conf
- 验证redis服务端口
- netstat -t -n
实验:yum安装redis
安装epel源
~]# yum install epel-release -y
安装redis服务
~]# yum install redis -y
启动服务、并设为开机启动
~]# systemctl start redis
~]# systemctl enable redis
查看端口号
~]# ss -ntlp |grep redis
LISTEN 0 128 127.0.0.1:6379 *:* users:(("redis-server",pid=4760,fd=4))
redis命令工具行
[root@controller1 ~]# redis-cli
127.0.0.1:6379> info
...
redis_version:3.2.12
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:7897e7d0e13773f
redis_mode:standalone
os:Linux 3.10.0-957.el7.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.8.5
...
实验:编译安装redis
下载当前最新 release 版本 redis 源码包:
官网提供了交互式的教程
安装epel源及相关依赖包
~]# yum install -y epel-release
~]# yum install -y make wget gcc gcc-c++
下载redis包
~]# wget http://download.redis.io/releases/redis-5.0.5.tar.gz
解压缩、编译安装
~]# tar xzf redis-5.0.5.tar.gz
~]# cd redis-5.0.5/
#指定安装目录
redis-5.0.5]# make PREFIX=/apps/redis install
redis-5.0.5]# cp redis.conf /apps/redis/etc/
前台启动redis
#启动后面跟redis文件所在位置'/apps/redis/etc/redis.conf'
redis-5.0.5]# /apps/redis/bin/redis-server /apps/redis/etc/redis.conf
解决警告提示
- backlog 参数控制的是三次握手的时候 server 端收到 client ack 确认号之后的队列值
~]# echo "net.core.somaxconn = 1024" >> /etc/sysctl.conf
~]# sysctl -p
- 内核允许分配所有的物理内存
0:表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1:表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2:表示内核允许分配超过所有物理内存和交换空间总和的内存
~]# echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
~]# sysctl -p
- 开启大页内存动态分配,需要关闭让 redis 负责内存管理。
~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
再次启动 redis,警告就没了
编辑 redis 服务启动脚本
[root@redis ~]# vim /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/apps/redis/bin/redis-server /apps/redis/etc/redis.conf --supervised systemd
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
注意ExecStart这项,安装路径和配置文件路径要对应
写到开机启动项中、并加载权限
redis-5.0.5]# vim /etc/rc.d/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled <--
redis-5.0.5]# chmod a+x /etc/rc.d/rc.local
创建 redis 用户和数据目录
redis-5.0.5]# useradd -s /sbin/nologin redis
redis-5.0.5]# mkdir -pv /apps/redis/{etc,logs,run,data}
#更改权限
redis-5.0.5]# chown redis.redis /apps/redis/ -R
验证 redis 启动服务
redis-5.0.5]# systemctl daemon-reload
redis-5.0.5]# systemctl enable redis
redis-5.0.5]# systemctl restart redis
创建软链接
redis-5.0.5]# ln -sv /apps/redis/bin/redis* /usr/local/sbin
启动
#编译安装后的命令
redis-5.0.5]# ll /apps/redis/bin/
total 32736
-rwxr-xr-x 1 redis redis 4366680 Nov 27 13:12 redis-benchmark #redis性能测试工具
-rwxr-xr-x 1 redis redis 8111928 Nov 27 13:12 redis-check-aof #AOF文件检查工具
-rwxr-xr-x 1 redis redis 8111928 Nov 27 13:12 redis-check-rdb #RDB文件检查工具
-rwxr-xr-x 1 redis redis 4806912 Nov 27 13:12 redis-cli #客户端工具
lrwxrwxrwx 1 redis redis 12 Nov 27 13:12 redis-sentinel -> redis-server #哨兵,软连接到server
-rwxr-xr-x 1 redis redis 8111928 Nov 27 13:12 redis-server #redis 服务启动命令
#redis交换窗口 “--help”可看帮助
redis-5.0.5]# /apps/redis/bin/redis-cli
127.0.0.1:6379> info
# Server
redis_version:5.0.5
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:573cee96230ac1e2
redis_mode:standalone
脚本:编译安装redis
#!/bin/bash
#函数
gecho() {
echo -e "\e[1;32m $1 \e[0m"
sleep 1
}
recho() {
echo -e "\e[1;31m $1 \e[0m"
sleep 1
}
#--------------参数修改-----------------
#└--1.redis版本
redis_ver="redis-4.0.14"
#└--2.安装目录
install_dir="/apps/redis"
#--------------------------------------
#下载解压
gecho "下载解压redis"
wget http://download.redis.io/releases/${redis_ver}.tar.gz
tar xf ${redis_ver}.tar.gz
cd ${redis_ver}
#环境安装
gecho "环境安装"
yum install -y epel-release
yum install -y wget gcc gcc-c++ || ( recho "安装环境失败" ; exit )
#编译redis
gecho "编译redis"
make PREFIX=${install_dir} install || recho "编译失败"
gecho "拷贝配置文件"
mkdir -p ${install_dir}/{etc,log,data,run}
cp redis.conf ${install_dir}/etc/
cp sentinel.conf ${install_dir}/etc/
#配置环境
gecho "配置环境"
echo "net.core.somaxconn = 1024" >> /etc/sysctl.conf
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
sysctl -p || recho "配置环境失败"
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
chmod +x /etc/rc.local
#配置启动脚本
gecho "配置启动脚本"
cat > /usr/lib/systemd/system/redis.service << EOF
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=${install_dir}/bin/redis-server ${install_dir}/etc/redis.conf --supervised systemd
ExecReload=/bin/kill -s HUP \$MAINPID
ExecStop=/bin/kill -s QUIT \$MAINPID
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
EOF
#启动服务
gecho "启动服务"
useradd -s /sbin/nologin redis || recho "redis用户已存在"
chown redis.redis -R ${install_dir}
systemctl daemon-reload
systemctl restart redis
systemctl enable redis
ln -sv ${install_dir}/bin/redis* /usr/local/sbin
#修改配置文件
gecho "修改配置文件"
#快照文件保存路径
sed -i "s@^dir.*@dir \"${install_dir}/data\"@" ${install_dir}/etc/redis.conf
#redis日志路径
sed -i "/^logfile/s#^.*\$#logfile \"${install_dir}/log/redis.log\"#" ${install_dir}/etc/redis.conf