redis环境及配置

# 安装

# yum安装Redis

在本节中,您将添加EPEL (opens new window)存储库,然后使用它来安装Redis。

  1. 添加EPEL存储库,并更新YUM以确认您的更改: sudo yum install epel-release sudo yum update
  2. 安装Redis: sudo yum install redis
  3. 启动Redis: sudo systemctl start redis 可选:要在启动时自动启动Redis: sudo systemctl enable redis

在CentOS和Red Hat系统中,首先添加EPEL仓库,然后更新yum源:

yum install -y epel-release redis
# sudo yum update
1
2

普通安装,非最细你版本,是3.2.8版本

yum install redis
1

yum安装最新redis 如果要安装最新的redis,需要安装Remi的软件源,官网地址:http://rpms.famillecollet.com/

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

安装好后启动Redis服务即可:

sudo systemctl start redis
1

这里同样可以使用redis-cli进入Redis命令行模式操作。

另外,为了可以使Redis能被远程连接,需要修改配置文件,路径为/etc/redis.conf

vi /etc/redis.conf
1

需要修改的地方:

首先,注释这一行:

#bind 127.0.0.1
1

另外,推荐给Redis设置密码,取消注释这一行:

#requirepass foobared

foobared即当前密码,可以自行修改为

requirepass 密码
1

然后重启Redis服务,使用的命令如下:

sudo systemctl restart redis
1
# 启动redis
service redis start
# 停止redis
service redis stop
# 查看redis运行状态
service redis status
# 查看redis进程
ps -ef | grep redis
1
2
3
4
5
6
7
8

# 源码包方式

# 安装及设置

# 编译

将准备好的 nginx-1.18.0.tar.gz 包,拷贝至 /usr/local/nginx 目录下(一般习惯在此目录下进行安装)进行解压缩。

wget  http://10.45.46.xxx:xxx/files/autorun/redis-3.2.11.tar.gz
1
$ sudo tar -zxvf  redis-3.2.11.tar.gz # 解压缩
1

在完成解压缩后,进入 redis-3.2.11 目录进行源码编译安装。

cd redis-3.2.11
# make install #默认安装
make install PREFIX=/usr/local/redis #后面的是你想要安装的路径
cp ./redis.conf  /usr/local/redis/bin/
1
2
3
4

源码包安装与 yum 安装的 nginx 服务操作命令也不同。

# 开启后台运行

打开文件后,如果你想查找,直接输入 / +你想要查找的字段 比如 / daemonized然后回车就可以查找了,按n表示下一个匹配字符:

vim /usr/local/redis/bin/redis.conf
修改redis.conf文件中的daemonize no为daemonize yes并保存
1
2
# 全局命令

把redis命令添加到环境变量; 取消用这种方式;

使用软连接将redis链接到/usr/local/bin

ln -s /usr/local/redis/redis-server /usr/local/bin
ln -s /usr/local/redis/redis-cli /usr/local/bin
ll /usr/local/bin/ | grep "redis"

# 通过软连接,这样就可以直接使用 redis 执行
sudo ln -s /usr/local/redis/bin/redis-server /usr/bin/redis
sudo ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis-cli

#启动并指定配置
redis-server ./redis.conf
1
2
3
4
5
6
7
8
9
10

添加到环境变量PATH; 不用这里再次设置;

echo $PATH
vim ~/.bash_profile

export PATH=$PATH:/usr/local/redis/bin

source ~/.bash_profile
1
2
3
4
5
6

改成直接引用到/usr/bin目录;【推荐】

创建redis命令软连接

ln -s /usr/local/redis/bin/redis-server /usr/bin/redis
ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis-cli #在任意命令行执行redis
1
2

设置服务启动脚本

非必须设置;

手动启动: redis /usr/local/redis/redis.conf

服务启动:

cp /usr/local/redis/bin/redis-server /etc/init.d/redis
service redis start
1
2

停止服务

redis-cli shutdown
1

查看 nginx 服务进程

redis 
ps -ef | grep redis # 查看服务进程
1
2

# 开机启动服务

#vim /etc/systemd/system/redis-server.service
#vim /etc/systemd/system/redis.service

vi /usr/lib/systemd/system/redis.service
1
2
3
4

粘贴以下内容

[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target

[Service]
Type=simple
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf         
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID

[Install]
WantedBy=multi-user.target
1
2
3
4
5
6
7
8
9
10
11
12
13

# 设置开机启动

systemctl daemon-reload 
systemctl start redis.service 
systemctl enable redis.service

systemctl status redis.service
1
2
3
4
5

另外一种方设置:

设置redis为开机自动启动

chkconfig redis on
1

服务操作命令

systemctl start redis.service #启动redis服务器
systemctl stop redis.service #停止redis服务器
systemctl restart redis.service #重新启动redis服务器

systemctl status redis.service #获取redis服务器的运行状态
systemctl enable redis.service #开机启动redis服务器
systemctl disable redis.service #开机禁用redis服务器
1
2
3
4
5
6
7

# 开放端口和重启防火墙

[root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@localhost ~]# firewall-cmd --zone=public --add-port=6379/tcp --permanent
success
[root@localhost ~]# systemctl restart firewalld
1
2
3
4
5
# 开启6379
/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
# 开启6380
/sbin/iptables -I INPUT -p tcp --dport 6380 -j ACCEPT
# 保存
/etc/rc.d/init.d/iptables save
# centos 7下执行
service iptables save
1
2
3
4
5
6
7
8

# 验证安装

验证Redis是否正在运行redis-cli

redis ping
1

如果Redis正在运行,它将返回:

PONG
1

# dokcer方式封装

RUN yum install -y gcc epel-release redis
RUN cp -rf /srv/app/soft/redis/redis.conf /etc/redis.conf
1
2

# Mac下安装

# 源码安装

# 步骤
  • 解压:tar zxvf redis-4.0.10.tar.gz
  • 移动到: mv redis-4.0.10 /usr/local/
  • 切换到:cd /usr/local/redis-4.0.10/
  • 编译测试 sudo make test
  • 编译安装 sudo make install
  • 安装成功后,输入redis-server启动redis
  • 新建一个终端窗口,输入命令行redis-cli
# 在bin下可执行的程序
  • redis-server: Redis服务器
  • redis-cli: 命令行客户端
  • redis-benchmark: Redis的性能测试工具
  • redis-check-aof: AOF文件修复工具
  • redis-check-dump: RDB文件检测工具
  • redis.conf: Redis的配置文件

redis默认是前台启动,如果我们想以守护进程的方式运行(后台运行),可以在redis.conf中将daemonize no,修改成yes即可。

进入/usr/local/bin目录下。输入命令即可开启redis服务。

# 启动和停止Redis

启动:

  • redis-server
  • redis-server /etc/redis.conf

停止

  • shutdown(在redis-3.2.8是shutdown nosave/save

关闭redis服务

  • 正确停止Redis的方式应该是向Redis发送SHUTDOWN命令;redis-cli shutdown

  • 强行终止redis;sudo pkill redis-server

链接

  • ps axu | grep redis
  • redis-cli
  • redis-cli -h 127.0.0.1 -p 6379

# Homebrew安装[推荐]

#没有安装Homebrew,首先安装npm国内的吧,快一些; 直接使用的阿里云的镜像
#/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

brew install redis
1
2
3
4

image-20220311103514705

查看安装及配置文件位置

  • Homebrew安装的软件会默认在/usr/local/Cellar/路径下
  • redis的配置文件redis.conf存放在/usr/local/etc路径下

启动redis服务

//方式一:使用brew帮助我们启动软件
brew services start redis
//方式二
redis-server /usr/local/etc/redis.conf
//执行以下命令
redis-server
1
2
3
4
5
6

# 卸载redis

卸载redis服务,只需把/usr/local/bin/目录下的redis删除即可

rm -rf /usr/local/bin/redis*
1

甚至可以把解压包也删除掉

rm -rf /root/redis-stable
1

# 登录及密码配置

# 连接登录

# 交互式

#redis-cli -h {host} -p {port}
$redis-cli -h 127.0.0.1 -p 6379
127.0.0.16379>set hello world
OK
127.0.0.16379>get hello
"world"
1
2
3
4
5
6

# 命令式

#redis-cli -h {host} -p {port} {command}
$redis-cli -h 127.0.0.1-p 6379 get hello
"world"
1
2
3

# 永久设置Redis密码

vim /etc/redis.conf
#在配置文件中有个参数:requirepass 这个就是配置redis访问密码的参数;
#比如 requirepass test123;
1
2
3

需重启Redis才能生效

# 临时设置Redis密码

redis 127.0.0.1:6379> config set requirepass test123
1

# 查询密码:

redis 127.0.0.1:6379> config get requirepass
(error) ERR operation not permitted
1
2

# 密码验证:

redis 127.0.0.1:6379> auth test123
OK
1
2

# 再次查询:

redis 127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "test123"
1
2
3

# 登陆有密码的Redis

redis-cli -p 6379 -a test123
1

# 先登陆后验证

redis-cli -p 6379
redis 127.0.0.1:6379> auth test123
OK
1
2
3

# 修改配置

# 启动远程连接

防火墙放行

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=6379/tcp --permanent
systemctl restart firewalld
1
2
3

修改redis.conf配置文件 关闭protected-mode模式,此时外部网络可以直接访问

修改redis.conf 文件,protected-mode 要设置成no。
//如果需要设置密码requirepass 空格后面跟设置的密码
修改redis.conf 文件,将 bind 127.0.0.1 修改成bind * -::* 
或者直接将bind这一行注释掉
1
2
3
4

用vi打开redis.conf,进行以下三项更改:

  • #bind 127.0.0.1 # 这里要注释掉,否则只有本机能访问
  • protected-mode no # 这里由yes改为no
  • requirepass 123456 # 这里设置上密码

改完后再重启下服务:

[root@localhost etc]# systemctl restart redis.service
1

完执行重启一下服务。

redis-cli -h 127.0.0.1 -p 6379
info
auth 123456
info

redis-cli -h 127.0.0.1 -p 6379 shutdown

set name ufo
get name
1
2
3
4
5
6
7
8
9

# 干掉redis服务器

sudo kill -9 pid 进程号
1

# 链接其他ip地址的redis

这里的ip是根据你要链接的ip地址进行更换的

./redis-cli -h 192.168.10.20 -p 6379
1

如果设置了密码,那么就再输入auth空格+密码

auth 密码

在链接时直接加上你的密码

./redis-cli -h 你服务器的ip -p 6379 -a 你的密码
1

# redis常用命令

命令 用途
set key value 设置 key 的值
get key 获取 key 的值
exists key 查看此 key 是否存在
keys * 查看所有的 key
flushall 消除所有的 key

# 参考链接

https://cloud.tencent.com/developer/article/1553633

上次更新: 2022/04/15, 05:41:31
×