在现代企业当中,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配置则会报错,如下图:
部署过程中可以通过使用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
注:想要将权限收回仍然执行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
编译安装完成后会在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/
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 &
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>