首页 > 数据库 >Redis 安装

Redis 安装

时间:2024-09-06 11:25:47浏览次数:12  
标签:opt Redis redis redis6379 systemctl conf root 安装

Redis所有版本下载地址:https://download.redis.io/releases/

1. 关闭防火墙和下载依赖

# 查看防火墙状态
systemctl status firewalld.service
# 关闭防火墙
systemctl stop firewalld.service
# 禁止开机启动防火墙
systemctl disable firewalld.service
# 启动防火墙
systemctl start firewalld.service
# 防火墙随系统开启启动
systemctl enable firewalld.service
# 关闭selinux,提高了系统的安全性,但关闭它可以释放系统资源,提高服务器的性能,避免一些程序的兼容性问题等等
[root@r ~]# sed -i.ori 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
sed -i.ori 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
yum update -y
yum -y install gcc automake autoconf libtool make
yum -y install net-tools
yum -y install vim
yum -y install wget

2.规划目录

/data/redis6379/                    # 数据存放目录
/opt/redis-5.0.7/                    # 安装目录
/opt/                                # 下载并解压目录
/opt/redis6379/{conf,logs,pid}       # 配置目录,日志目录,pid目录

3.下载安装

mkdir -p /data/redis6379 
cd /opt
# yum -y install wget
wget https://download.redis.io/releases/redis-5.0.7.tar.gz
tar -zxf redis-5.0.7.tar.gz
cd /opt/redis-5.0.7
make && make install

 

4.安装完成后,Redis可执行程序会自动添加到/usr/local/bin路径,我们就可以在任何地方的terminal中使用Redis相关命令了。

[root@cs opt]# ll /usr/local/bin/redis*
-rwxr-xr-x. 1 root root 4365728 Aug  1 10:58 /usr/local/bin/redis-benchmark
-rwxr-xr-x. 1 root root 8124120 Aug  1 10:58 /usr/local/bin/redis-check-aof
-rwxr-xr-x. 1 root root 8124120 Aug  1 10:58 /usr/local/bin/redis-check-rdb
-rwxr-xr-x. 1 root root 4806800 Aug  1 10:58 /usr/local/bin/redis-cli
lrwxrwxrwx. 1 root root      12 Aug  1 10:58 /usr/local/bin/redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 8124120 Aug  1 10:58 /usr/local/bin/redis-server

调用redis相关命令:

[root@cs opt]# redis-server -v
Redis server v=5.0.7 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=a67ef2d8861912e7

5.编写配置文件

mkdir -p /opt/redis6379/{conf,logs,pid}
cat >/opt/redis6379/conf/redis6379.conf<<EOF
daemonize yes
# 注意,生产中, 千万不要bind 0.0.0.0,不要将Redis暴露到外网环境,防止被人攻击
bind 127.0.0.1 $(ifconfig ens33|awk 'NR==2{print $2}')
port 6379
pidfile /opt/redis6379/pid/redis6379.pid
logfile /opt/redis6379/logs/redis6379.log
EOF

7.启动

redis-server /opt/redis6379/conf/redis6379.conf

ps -ef|grep redis

8.客户端连接

[root@cs opt]# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> quit
[root@cs opt]# 

无密码,直接连接操作

9.关闭

# 结合启动命令测试关闭命令
redis-server /opt/redis6379/conf/redis6379.conf
ps -ef|grep redis

# 方式1
[root@cs opt]# redis-cli
127.0.0.1:6379> SHUTDOWN
not connected> quit
[root@cs opt]# 


# 方式2
[root@cs opt]# redis-cli shutdown
[root@cs opt]# 

# 方式3
[root@cs opt]# pkill -9 redis
[root@cs opt]# 

10.可选的配置,配置systemd管理Redis

# 先把之前可能运行的Redis停止
# 创建redis用户和组,以及给相关目录权限
# 创建systemctl管理redis的文件
# 就可以通过systemctl管理redis了

redis-cli shutdown

# -u和-g选项表示同时添加具有特定UID和GID的用户
# -M创建一个没有主目录的用户
# -s表示当前创建的当前用户无法用来登录系统
# chown -R redis:redis表示指定目录以及内部的文件所有用户属组归于redis:redis
# groupdel redis
# cat /etc/group |grep redis
groupadd redis -g 1000
# userdel redis
# cat /etc/passwd |grep redis
useradd redis -u 1000 -g 1000 -M -s /sbin/nologin
chown -R redis:redis /opt/redis*
chown -R redis:redis /data/redis*

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=/usr/local/bin/redis-server /opt/redis6379/conf/redis6379.conf --supervised systemd
ExecStop=/usr/local/bin/redis-cli shutdown
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload   # 当添加或者修改了某个服务的配置文件,就要执行daemon-reload命令重新加载下
systemctl start redis


# 启动/停止/重启/查看状态/设置redis开机自启
systemctl start/stop/restart/status/enable redis

 

 

优化:

1.客户端最大连接数低:

解决:systemd启动文件添加参数LimitNOFILE

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=/usr/local/bin/redis-server /opt/redis6379/conf/redis6379.conf --supervised systemd
ExecStop=/usr/local/bin/redis-cli shutdown
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
LimitNOFILE=65536  #修改此参数
[Install]
WantedBy=multi-user.target
EOF

2.overcommit_memory设置

虚拟内存相关,overcommit_memory 表内存分配策略,可选值:0、1、2

0,表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

解决:

# 临时解决
sysctl vm.overcommit_memory=1

# 永久解决 vim /etc/sysctl.conf  追加:
vm.overcommit_memory=1

# 生效配置
sysctl -p

 

3.关闭THP⼤内存⻚

redis建议我们关掉THP,还给出的具体的操作办法,注意必须使用root来操作,否则会失败。

  • Linux kernel 在 2.6.38 的版本中新增了 THP 的特性,支持大内存页(2MB)分配,默认开启。
  • 当开启 THP 时会降低 fork 子进程的速度,但是 fork 操作之后,每个内存页从原来 4KB 变为 2MB,会大幅增加重写期间父进程内存消耗。
  • 同时每次写命令引起的复制内存也单位放大了 512 倍,会拖慢写操作的时间,导致大量写操作慢查询,例如:简单的 incr、set 命令也会出现在慢查询中。
# 临时解决
echo never > /sys/kernel/mm/transparent_hugepage/enabled


# 永久解决 vim /etc/rc.local  追加:

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

 

4.TCP连接数调整

意思是配置 /proc/sys/net/core/somaxconn的值是128,但redis.conf中配置的是511,但是linux内核会以无提示的方式将其截断为128。在一个高并发的环境下,128是远远不够的,所以我们要改大一些。

# 永久解决 vim /etc/sysctl.conf  追加:
net.core.somaxconn= 4096

# 生效配置
sysctl -p

 

如果需要密码:

cat >/opt/redis6379/conf/redis6379.conf<<EOF

requirepass XXX

systemctl restart redis

 

标签:opt,Redis,redis,redis6379,systemctl,conf,root,安装
From: https://www.cnblogs.com/jjjyyylll/p/18399904

相关文章

  • Redis 解决内存满了方法
    1.增加内存2.使用内存淘汰策略,也就是在配置文件中设置maxmemory参数,该参数控制最大可用内存(字节),当内存上线超过该参数时,maxmemory-policy规则描述noeviction默认参数,不删除键,只返回错误volatile-lru使用LRU算法删除一个设置了生存时间的键allkeys-lru使用LRU算法......
  • Ubuntu 安装Docker 运行Nginx
    目录介绍主要功能和特点常用组件安装Docker卸载旧版本Docker(如果有的话)更新apt包索引安装Docker所需的包 添加Docker官方GPG密钥设置Docker仓库安装最新版本Docker验证Docker是否安装成功允许当前用户操作Docker(可选,避免每次使用docker都需要sudo)在Docker......
  • Maven 安装 JAR 到本地仓库
    虽然直接在 pom.xml 中引用本地JAR文件是一种可行的方法,但更好的做法是将JAR文件安装到你的本地Maven仓库中。这样,你就可以像引用其他Maven依赖一样来引用它,而且你的项目构建将更加可移植和可维护。1:你可以使用Maven的 mvninstall:install-file 命令来完成这一......
  • 在Win10上安装抓WIFI空口包的TP_LINK(TL-WDN7200H)网卡驱动指导
    在Win10上安装抓WIFI空口包的TP_LINK(TL-WDN7200H)网卡驱动指导1关闭win0驱动程序强制签名选择所有设置选择更新和安全选择恢复中的立即重启进入下一个界面,在下一个界面中选择疑难解答进入疑难解答界面,选择高级选项进入高级选项界面,选择启动设置点击重启进入启动......
  • Mysql多实例安装
    MySQL多实例的本质在一台机器上开启多个不同的MySQL实例,也就是各实例监听不同的端口,提供不同的服务。多个实例公用一套MySQL安装程序,启动程序和配置文件可以是一个也可以是多个(推荐多个);各自的数据文件隔离;逻辑上各实例彼此隔离。为什么要使用多实例?优缺点?物理机性能强大,单个......
  • Docker 安装mysql
    1、从docker hub上拉取镜像到本地#dockerpullmysql:5.62.如果是不加版本直接拉取的话,默认的是最新版本 #dockerpullmysql:latest默认拉取最新的版本3.启动:#dockerrun--namemysql-p3306:3306-eMYSQL_ROOT_PASSWORD="设置你的mysql的密码"-dmysql:5.6......
  • 安装Mysql
    1.下载Mysql打开官网下载地址:https://downloads.mysql.com/archives/community/,按照截图所示下载即可。选择对应的操作系统Windows安装 1.下载到本地的安装包是zip包,选择一个指定目录进行解压,解压的过程就是安装的过程,解压后的位置就是MySQL的安装位置。注意,安装目录不允许......
  • Typora v1.9.5 激活版详细安装方法 (轻便简洁的Markdown编辑器)
    安装步骤附链接:https://pan.xunlei.com/s/VO643khkh2f5HyCW3j6ljJP5A1?pwd=mrsr#1、下载解压后将Typora.exe发送到桌面快捷方式2、启动桌面图标3、使用成功......
  • Adobe Dimension DN 激活版详细安装方法
    安装步骤Adobe-Dimension-4.0.2.4133-m0nkrus.zip:https://pan.xunlei.com/s/VO644eTTcjLPoTKym9V0ER1CA1?pwd=22dr#1、解压后点击如下图运行2、选择安装路径,我选择的是D盘,建议别安装在系统盘(C盘)3、安装中,耐心等待2-5分钟4、安装完成,点击关闭5、左下角点击开始菜单栏,找到......
  • 安装了跑神经网络的环境,所遇到的问题及解惑1
    cuda:12.2cudnn:8.9.7tensorflow库:2.17.0(python310_test){9:37}/home/code/python➭pythonmnist_test.py2024-09-0609:39:29.473128:Eexternal/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261]UnabletoregistercuDNNfactory:Attemptingtoregister......