随笔
主页
  • Unity
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
  • 数据库

    • Redis
  • Html 文档
  • CSS 文档
  • Vue 文档
  • TypeScript
  • Golang
  • 版本控制

    • Git 文档
    • Svn 文档
  • 技术文档

    • Markdown语法
    • GitHub技巧
    • Nodejs
  • 分类
  • 标签
  • 时间线
  • 目录结构
  • 配置和约定
  • 主题配置
  • 首页配置
  • front matter
  • 目录页配置
  • 摘要
  • 主题颜色
  • 评论栏
  • Markdown扩展
GitHub
主页
  • Unity
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
  • 数据库

    • Redis
  • Html 文档
  • CSS 文档
  • Vue 文档
  • TypeScript
  • Golang
  • 版本控制

    • Git 文档
    • Svn 文档
  • 技术文档

    • Markdown语法
    • GitHub技巧
    • Nodejs
  • 分类
  • 标签
  • 时间线
  • 目录结构
  • 配置和约定
  • 主题配置
  • 首页配置
  • front matter
  • 目录页配置
  • 摘要
  • 主题颜色
  • 评论栏
  • Markdown扩展
GitHub
  • 命令大全

  • 软件安装

    • 数据库

      • redis
        • Centos
          • 安装
        • Ubuntu18.04-server
          • 更新依赖
          • 下载
          • 解压缩
          • 进入解压目录
          • 编译二进制文件
          • 测试编译
          • 安装至系统环境
          • 创建配置目录。Redis配置目录通常位于/etc/目录中
          • 复制Redis源存档附带的示例Redis配置文件
          • 配置修改
          • 创建Redis systemd单元文件
          • 创建Redis用户,组和目录
        • 配置详情
    • 终端

    • 软件

    • 网络

  • 网络设置

  • Linux
  • 软件安装
  • 数据库
dong
2021-02-13

redis

# Redis

  • 版本查看

    redis-cli --version
    
    1
  • 启动

    service redis start
    
    1

或者 shell systemctl start redis

  • 停止

    service redisd stop
    
    1
  • 重启

    service redisd restart
    
    1
  • 状态查看

    service redisd status
    
    1
  • 开机自启动

    • 方式1

      systemctl enable redis.service
      
      1
    • 方式2 Redis安装目录下,有个utils子目录里面有个redis_init_script文件,拷贝到/etc/init.d/,并命名为redisd:

      cp redis_init_script /etc/init.d/redisd
      
      1

      编辑redisd的内容,修改为对应的路径:

      vim /etc/init.d/redisd
      
      1

      修改REDISOIRT、EXEC、CLIEXEC、PIDFILE、CONF为对应的配置

  • 外网访问

    firewall-cmd --zone=public --add-port=6379/tcp --permanent(开放6379端口)
    
    1
    • 重启防火墙
    systemctl restart firewalld
    
    1
  • 其他命令

    • redis-benchmark 文件是redis性能测试工具

    • redis-check-aof 是redis的AOF文件修复工具

    • redis-check-rdb 是redis的RDB文件检索工具

    • redis-cli 是redis的客户端工具

    • redis-server 是redis的服务器

    • redis-sentinel 是服务器端的一个软连接

# Centos

# 安装

  • yum安装

    yum install redis
    
    1
  • 最新安装

    yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
    
    1

可以使用下面命令安装最新稳定版本Redis shell yum --enablerepo=remi install redis

# Ubuntu18.04-server

# 更新依赖

sudo apt update
sudo apt install build-essential tcl
1
2

# 下载

curl -O http://download.redis.io/redis-stable.tar.gz
1

# 解压缩

tar xzvf redis-stable.tar.gz
1

# 进入解压目录

cd redis-stable
1

# 编译二进制文件

make
1

# 测试编译

make test
1

# 安装至系统环境

sudo make install
1

# 创建配置目录。Redis配置目录通常位于/etc/目录中

sudo mkdir /etc/redis
1

# 复制Redis源存档附带的示例Redis配置文件

sudo cp /tmp/redis-stable/redis.conf /etc/redis
1

# 配置修改

sudo nano /etc/redis/redis.conf
1

在文件中,找到supervised指令。该指令允许您声明一个init系统来管理Redis作为服务,使您可以更好地控制其操作。该supervised指令默认设置为no。由于您运行的是使用systemd初始化的Ubuntu系统,因此将其更改为systemd

/etc/redis/redis.conf . . .

# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
#   supervised no      - no supervision interaction
#   supervised upstart - signal upstart by putting Redis into SIGSTOP mode
#   supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
#   supervised auto    - detect upstart or systemd method based on
#                        UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
#       They do not enable continuous liveness pings back to your supervisor.
supervised systemd

. . .

接下来,找该dir指令。此选项指定Redis将用于转储持久数据的目录。您需要将其更改为Redis具有写权限且普通用户无法查看的位置。 使用/var/lib/redis目录;

/etc/redis/redis.conf . . .

# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir /var/lib/redis

. . .

# 创建Redis systemd单元文件

为了更好地控制Redis的管理方式,您可以创建一个systemd单元文件,使其可以作为systemd服务。这样做的好处是可以服务器启动时启动Redis。

创建并打开/etc/systemd/system/redis.service文件:

sudo vim /etc/systemd/system/redis.service
1

进入后,通过添加服务描述并定义网络要求来启动Unit:

/etc/systemd/system/redis.service

[Unit]
Description=Redis In-Memory Data Store
After=network.target

Service部分用来指定服务行为。出于安全考虑,您不应以root用户身份运行此服务。您应该使用专用的用户和组。 要启动该服务,只需调用redis-server二进制文件并将其指向您的配置即可。要停止该服务,请使用Redis shutdown命令,您可以使用redis-cli二进制文件执行该命令。此外,由于我们更希望在出现故障的时候Redis可以尽快的恢复,因此我们将Restart指令设置为always:

/etc/systemd/system/redis.service

[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

最后,添加一个Install部分。定义应该附加到服务上的systemd目标(如果它已启用):

/etc/systemd/system/redis.service

Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

# 创建Redis用户,组和目录

首先创建redis用户和组。您可以通过输入以下命令在单个命令中执行此操作

sudo adduser --system --group --no-create-home redis
1

接下来,输入以下命令创建/var/lib/redis目录(redis.conf在步骤2中创建的文件中引用):

sudo mkdir /var/lib/redis
1

为此目录授予redis用户和组所有权:

sudo chown redis:redis /var/lib/redis
1

最后,调整权限,阻止普通用户访问此位置:

sudo chmod 770 /var/lib/redis
1

# 配置详情

  1. 注释bind 127.0.0.1 或修改为本机IP

  2. protected-mode no (关闭保护模式)

  3. daemonize yes (开启守护)

  4. requirepass #密码# (设置密码)

  5. pidfile /var/run/redis/redis.pid (pid 文件)

  6. logfile "/var/log/redis/redis.log" (日志文件)

  7. dir /usr/local/redis/data/ (数据文件目录)

#linux#软件安装
tar
fish

← tar fish→

Theme by Vdoing | Copyright © 2021-2023 Evan Dong MIT License | 粤ICP备2021052092号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×