Redis 入门 - 0(安装、远程访问)

Redis 入门 - 0(安装、远程访问)

在服务器上构建一个独立的 Redis 服务,并可远程访问

下载

Get the latest stable version.
我这里下载的是:redis-6.2.5.tar.gz

安装

  1. 我使用的是 Linux CentOS 8 虚拟机
  2. 执行yum -y install gcc, tcl, wget, iptables*,安装必要的依赖
  3. 进入安装执行目录,例如:cd ~
  4. 上传你下载下来的 redis 安装包,有网的话可以 wget https://download.redis.io/releases/redis-6.2.5.tar.gz
  5. 解压缩,tar -xvf redis-6.2.5.tar.gz
  6. 进入目录,cd redis-6.2.5
  7. 执行,make && make install
    这步操作会首先编辑 Redis,随后会将 Redis bin 服务,复制到 /usr/local/bin 目录下,具体如下:
    redis-benchmark    // 性能测试工具
    redis-check-aof    // AOF文件修复工具
    redis-check-rdb    // RDB文件检查工具
    redis-cli    // 命令行客户端
    redis-sentinel -> redis-server        // Sentinel 服务
    redis-server    // 服务
  8. 安装成功后,最好执行次make test。如果有报错,对错误进行修正。

常见错误

  1. 执行make test时,报: You need tcl 8.5 or newer in order to run the Redis test错误时,可安装并升级yum -y install tcl即可解决
  2. 编译时报:jemalloc/jemalloc.h: No such file or directory,可单独执行:make MALLOC=libc,再执行:make install

独立配置

独立配置指需要通过 redis-server /config_path
创建一个存放 redis 配置文件的文件夹,例如:mkdir /usr/local/redis,再在其中创建三个文件夹 confdatalogs 分别用于存放配置文件、数据和日志。

service 配置

  1. 复制:cp -p ./redis-5.0.7/utils/redis_init_script /etc/init.d/redisd
  2. 编辑vim /etc/init.d/redisd,注意:REDISPORT、EXEC、CLIEXEC、PIDFILE、CONF,这几个变量的设定
REDISPORT=6379    // 为端口号,你可以修改为不同的
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/redis_${REDISPORT}.conf"
// 我偏好将 Reids config 文件命名为 redis_6379.conf

保存退出。

conf 配置

  1. 复制:cp -p ./redis-5.0.7/redis.conf /etc/redis/redis_6379.conf下(无此目录时,请创建,mkdir /etc/redis
  2. 编辑:vim /etc/redis/redis_6379.conf
// 为了能够远程访问,让此服务器作为 Redis 专用服务器来使用,注释掉
#bind 127.0.0.1

// 同样,为了能够远程访问,由 yes 更改为 no
protected-mode no

// 设定的值参考 cat /proc/sys/net/core/somaxconn 下的数值,否则会报警
tcp-backlog 128

// 启用后台模式,由 no 改为 yes
daemonize yes

// 最好验证下,是否和 redisd 中的配置一致
pidfile /var/run/redis_6379.pid

// 修改日志等级,设定日志路径
loglevel warning
logfile "/data/redis/logs/redis.log"

// 设定访问密码(我这里设定为 redis)
requirepass redis

// 配置持久化文件存放位置
dir /data/redis
  1. 保存退出,完成 conf 文件的修改

启动/停止

  1. 启动:service redisd start
  2. 验证(注意:因为设定了密码,所以需要执行auth [password]进行验证)
[root@centos-linux]# redis-cli
127.0.0.1:6379> ping
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth redis
OK
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

也可以执行:./redis-cli -a [password]来登录,省去输入密码

  1. 停止
[root@centos-linux ~]# cd /usr/local/bin/
[root@centos-linux bin]# ./redis-cli
127.0.0.1:6379> auth redis
OK
127.0.0.1:6379> shutdown
not connected>
not connected> exit

开启防火墙

Redis 端口为 6379,如果需要从外部进行访问,则需要更改防火墙为:允许外部访问 6379 端口

  1. 编辑 vim /etc/sysconfig/iptables 文件,添加如下命令:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT

如果发现打开的文件 /etc/sysconfig/iptables 为空时,请执行:

yum -y install iptables*    // 安装 iptables
  1. 重启防火墙
service iptables restart

常见警告

11133:M 22 Feb 16:41:52.540 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.

按照警告提示信息中的解决方法,即可消除警告

Mac 下访问 Redis 服务

安装 Redis

  1. 使用 brew 安装 Redis,brew install redis
  2. 启动 Redis,brew services start redis
  3. 配置 Redis,redis-server /usr/local/etc/redis.conf(无必要,因为我们仅需要 redis-cli)

远程访问

  1. 远程访问之前配置的 Reids 服务器,redis-cli -h 10.211.55.3 -p 6379

  2. 验证

~ redis-cli -h 10.211.55.3 -p 6379
10.211.55.3:6379> auth redis
OK
10.211.55.3:6379> ping
PONG
10.211.55.3:6379>
  1. redis-cli -h 10.211.55.3 -p 6379 -a redis

注意:IP 10.211.55.3 是我虚拟机的 IP,会和你的不同

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 6年前 自动加精
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1
leo

基于安全方面的考虑,千万不要开启 redis 的远程访问功能,即使是加上了 auth 密码,被暴力破解的概率也非常高

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!