在现代企业当中,root用户权限一般不会随意给项目组使用,会有专人管理root权限,所以在部署前需要考虑到后面的redis数据库的使用用户是非root连接的,这里介绍一下前期使用root用户部署redis,进程归属为普通用户,这样一来,后期可以在不使用操作系统的超管用户下管理并使用redis数据库。

一、准备基础环境

准备基础环境分为以下几个步骤:

  • 准备python环境【root操作】
  • 为普通用户配置sudo权限,每次执行sudo操作时输入普通用户密码【root操作】

1、部署python3环境

部署python3环境是为了后面编译安装redis的时候会对python产生依赖,下面开始准备编译环境:

# 准备编译环境
[root@localhost ~]# yum install -y zlib* gcc-c++ zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

# 获取安装包并解压
[root@localhost ~]# wget http://cdn.npm.taobao.org/dist/python/3.6.5/Python-3.6.5.tgz
[root@localhost ~]# tar -zxvf Python-3.6.5.tgz

# 指定安装路径并执行编译安装python3
[root@localhost ~]# cd Python-3.6.5/
[root@localhost Python-3.6.5]# ./configure --prefix=/usr/local/python3 --with-ssl
[root@localhost Python-3.6.5]# make && make install

# 查看python3是否已经按照指定的路径安装成功了
[root@localhost Python-3.6.5]# ll -tr /usr/local/ | grep python
drwxr-xr-x  6 root root 56 May 16 17:45 python3

# 创建python3的软链接
[root@localhost ~]# ln -s /usr/local/python3/bin/python3 /usr/bin/python3
[root@localhost ~]# ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

2、创建普通用户

[root@localhost ~]# useradd gtc
[root@localhost ~]# passwd gtc

3、临时为普通用户配置sudo权限(root用户操作)

在使用普通用户做make install安装redis的过程中会在/usr/local/bin目录下创建文件,如不做sudo配置则会报错,如下图:

redis查看渠道的订阅者_python

部署过程中可以通过使用root用户操作临时打开普通用户的sudo权限,操作如下:

[root@localhost ~]# visudo
# 在打开的文件中在如下行后面追加一行普通用户的配置:
root    ALL=(ALL)       ALL
gtc     ALL=(ALL)       ALL

:该操作只会提权,但是仍然需要在执行sudo命令时输入密码,如果想要免密执行sudo,可以执行下面的操作:

[root@localhost ~]# visudo
# 在打开的文件中在如下行后面追加一行普通用户的配置:
%wheel        ALL=(ALL)       NOPASSWD: ALL
gtc           ALL=(ALL)       NOPASSWD: ALL

redis查看渠道的订阅者_linux_02

注:想要将权限收回仍然执行visudo命令将刚才添加的普通用户的配置删除掉即可。

二、安装单节点的Redis

1、下载安装包并解压

[root@localhost ~]# su - gtc
[gtc@localhost ~]$ mkdir dev
[gtc@localhost ~]$ cd dev/
[gtc@localhost dev]$ wget http://download.redis.io/releases/redis-7.2.4.tar.gz
[gtc@localhost dev]$ tar -xvzf redis-7.2.4.tar.gz
[gtc@localhost dev]$ ls
redis-7.2.4  redis-7.2.4.tar.gz

2、执行编译安装

[gtc@localhost ~]$ cd dev/redis-7.2.4/
[gtc@localhost redis-7.2.4]$ make
[gtc@localhost redis-7.2.4]$ sudo make install

redis查看渠道的订阅者_linux_03

编译安装完成后会在src目录下新增部分文件。可以新建目录,将redis可执行文件和配置文件统一管理:

[gtc@localhost ~]$ cd dev/redis-7.2.4/
[gtc@localhost redis-7.2.4]$ mkdir etc
[gtc@localhost redis-7.2.4]$ mkdir bin
[gtc@localhost redis-7.2.4]$ cp redis.conf ./etc/
[gtc@localhost redis-7.2.4]$ cd src
[gtc@localhost src]$ cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel ../bin/

# 查看复制的文件
[gtc@localhost src]$ ll /home/gtc/dev/redis-7.2.4/etc/
[gtc@localhost src]$ ll /home/gtc/dev/redis-7.2.4/bin/

redis查看渠道的订阅者_python_04

3、启动redis

切换到 bin 目录,使用./redis-server即可启动 redis 服务,但是这种方式没有指明配置文件,redis 将采用默认配置,所以我们需要让 redis 按照我们的配置文件来启动,如下,启动时指定刚才我们复制到 etc 文件夹下的redis.conf。

[gtc@localhost ~]$ cd dev/redis-7.2.4/bin/
[root@localhost bin]# ./redis-server /home/gtc/dev/redis-7.2.4/etc/redis.conf

# 放到前台启动会导致启动后的redis界面占用shell终端,导致无法进行其他的命令操作,这里可以用后台启动redis的方式,使用如下命令:
[root@localhost bin]# nohup ./redis-server /home/gtc/dev/redis-7.2.4/etc/redis.conf &

redis查看渠道的订阅者_python_05

4、测试使用Redis

使用redis-cli命令连接客户端,如下:

[gtc@localhost bin]$ ./redis-cli
127.0.0.1:6379> set test 123
OK
127.0.0.1:6379> get test
"123"
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:0
master_failover_state:no-failover
master_replid:0fd14d120d7f4d162a58046054ab2fe36be78106
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379>

redis查看渠道的订阅者_python_06