文章目录
一、什么是Redis
远程字典服务器,Remote Dictionary Server
一个开源的基于内存的数据库,常用作键值存储、缓存和消息队列等。
Redis通常将全部数据存储在内存中,也可以不时的将写入硬盘实现持久化,但仅用于重新启动后将数据加载回内存。
二、Redis发展历史
意大利程序员开发,他最早使用传统数据库做了一个实时的Web日志分析器,因为对期性能不够满意,开发了Redis,2020年6月,这个创始人辞去了Redis维护者的职务。
三、Redis安装(Centos 7)
3.1 下载安装包
安装包下载地址:
https://redis.io
3.2 安装gcc
centos7默认的gcc版本太低,不能进行redis源码的编译安装
sudo yum install centos-release-scl
## centos7对应7
sudo yum install devtoolset-7-gcc*
## 相当于安装了多个版本的gcc使用时要切换一下
scl enable devtoolset-7 bash
## 查看一下gcc的版本号
gcc -v
3.3 上传redis安装包
上传redis的安装包文件到/usr/local/src下
## 执行命令
make && make install
安装完成可以检查一下/usr/local/bin
[root@mysql redis-6.2.7]# cd /usr/local/bin
[root@mysql bin]# ls
## 可以看到这个目录已经生成了很多文件,并且给加到了环境变量path中
redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server
3.4 Redis 配置文件
进入安装文件目录将配置文件备份一下
[root@mysql redis-6.2.7]# pwd
/usr/local/src/redis-6.2.7
[root@mysql redis-6.2.7]# cp redis.conf redis.conf.bak
redis.conf文件中的一些配置:
允许访问的地址,默认是127.0.0.1,会导致只能在本地访问,修改为0.0.0.0则可以在任意IP访问。
bind 0.0.0.0
守护进程,修改为yes后即可后台运行
daemonize yes
密码,设置后访问redis必须输入密码
requirepass 123321
Redis的其他常见配置
监听端口
port 6379
工作目录,默认是当前目录,也就是运行redis-server的命令,日志,持久化等文件会保存在这个目录。
dir .
数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0-15
databases 1
设置redis能够使用的最大内存
maxmemory 512mb
日志文件,默认为空,不记录日志,可以指定日志文件名
logfile “redis.log” 配合工作目录使用
启动Redis
[root@mysql redis-6.2.7]# pwd
/usr/local/src/redis-6.2.7
[root@mysql redis-6.2.7]# redis-server redis.conf
[root@mysql redis-6.2.7]# ps -ef | grep redis
root 2336 1 0 14:45 ? 00:00:08 /data2/redis-stack-server-6.2.4-v3/bin/redis-server *:6379
root 90453 85758 0 16:13 pts/1 00:00:00 grep --color=auto redis
关闭Redis
## 这里可以看进程ID为2336
[root@mysql redis-6.2.7]# ps -ef | grep redis
root 2336 1 0 14:45 ? 00:00:08 /data2/redis-stack-server-6.2.4-v3/bin/redis-server *:6379
root 90453 85758 0 16:13 pts/1 00:00:00 grep --color=auto redis
## 直接杀死进程
[root@mysql redis-6.2.7]# kill -9 2336
[root@mysql redis-6.2.7]# ps -ef| grep redis
root 90492 85758 0 16:16 pts/1 00:00:00 grep --color=auto redis
3.5 配置Redis开机自启动
我们自己编写一个系统服务文件
vi /etc/systemd/system/redis.service
内容如下:
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.7/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
重载一下系统服务
systemctl daemon-reload
## 添加redis服务自启动
[root@mysql redis-6.2.7]# systemctl enable redis
Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /etc/systemd/system/redis.service.
## 查看redis服务状态
[root@mysql redis-6.2.7]# systemctl status redis
● redis.service - redis-server
Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: disabled)
Active: inactive (dead)
[root@mysql redis-6.2.7]# systemctl start redis
[root@mysql redis-6.2.7]# systemctl status redis
● redis.service - redis-server
Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: disabled)
Active: inactive (dead) since 日 2022-10-09 16:29:02 CST; 8s ago
Process: 90715 ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.7/redis.conf (code=exited, status=0/SUCCESS)
10月 09 16:29:02 mysql systemd[1]: Starting redis-server...
10月 09 16:29:02 mysql systemd[1]: Started redis-server.
[root@mysql redis-6.2.7]# ps -ef | grep redis
root 90518 1 0 16:19 ? 00:00:01 redis-server 0.0.0.0:6379
root 90730 85758 0 16:29 pts/1 00:00:00 grep --color=auto redis
[root@mysql redis-6.2.7]#