14天学习训练营导师课程: 郑为中《Vue和SpringBoot打造假日旅社管理系统》
努力是为了不平庸~
学习有些时候是枯燥的,但收获的快乐是加倍的,欢迎记录下你的那些努力时刻(学习知识点/题解/项目实操/遇到的bug/等等),在分享的同时加深对于知识点的理解,同时吸收他人的奇思妙想,一起见证技术er的成长~
你可以从以下几个方面着手(不强制),或者根据自己对学习课程主题的理解创作,参考如下:
Redis
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker.
是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 开源 遵循BSD 基于内存数据存储 被用于作为 数据库 缓存 消息中间件
- 总结: redis是一个内存型的数据库
Redis能该干什么?
- 内存存储、持久化,内存是断电即失的,所以需要持久化(RDB、AOF)
- 高效率、用于高速缓冲
- 发布订阅系统
- 地图信息分析
- 计时器、计数器(eg:浏览量)
- …
Redis特点
- Redis是一个高性能key/value内存型数据库
- Redis支持丰富的数据类型
- Redis支持持久化
- Redis单线程,单进程
官网:https://redis.io/
中文网:http://redis.cn/
Redis安装
1 若redis是6.0以上的,gcc需要5.3以上的
-
查看自己linux中gcc的版本
[root@localhost ~]# gcc -v
-
安装gcc
安装6.0以上版本需要升级gcc到5.3及以上,如下:升级到gcc 9.3: yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils scl enable devtoolset-9 bash #需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。 #如果要长期使用gcc 9.3的话: echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile #这样的话退出shell重新打开就是新版的gcc了
准备环境
- vmware15.x+
- centos7.x+
1.下载redis源码包
- https://redis.io/ 我这里下载的是7.0.0
2.下载完整源码包
- redis-7.0.0.tar.gz
3.将下载redis资料包上传到Linux中 上传到home目录下
# 可以将其移动到opt目录下
mv redis-7.0.0.tar.gz /opt
4.解压缩文件
[root@localhost opt]# tar -zxvf redis-7.0.0.tar.gz
[root@localhost opt]# ls
进入解压后的文件可以看到解压后的配置文件redis.conf
5.安装gcc
基本的环境安装:之前我安装过了。 所以第五步就不用管了。
- yum install -y gcc
6.进入解压缩目录执行如下命令
[root@localhost redis-7.0.0]# make
# - make MALLOC=libc
7.编译完成后执行如下命令
[root@localhost redis-7.0.0]# make install
# - make install PREFIX=/usr/redis
# redis的默认安装路径和程序都是一样的,都在 /usr/local/bin下
# 将配置文件拷贝到当前目录下。首先需要创建一个目录
[root@localhost bin]# mkdir config
[root@localhost bin]# cp /opt/redis-7.0.0/redis.conf config
#这样我们原生的配置文件是不变的,修改此处的就可以了,如果需要原生的,还可以去opt目录下看。现在就使用这个配置文件启动。
# 由于redis默认不是后台启动的,所以我们可以修改配置文件使其后台启动
[root@localhost config]# vi redis.conf
找到daemonize no 将其修改为yes
8.进入/usr/local/bin 目录启动redis服务
[root@localhost bin]# ./redis-server config/redis.conf
(后面那个是通过指定的配置文件启动,如果是原生的就不用写这个了)
9.Redis服务端口默认是 6379
10.进入bin目录执行客户端连接操作
[root@localhost bin]# ./redis-cli -p 6379
11.连接成功出现上面界面连接成功
# 查看redis进程是否开启,需要在主机方进行
$ ps -ef|grep redis
# 通过管道符过滤
# 关闭redis,shutdown
127.0.0.1:6379> shutdown
not connected> exit
之后我们再去查看redis是不是结束了。
后面会使用单机多redis启动集群测试。
遇到问题
防火墙
[root@xiaoming ~]# firewall-cmd
Traceback (most recent call last):
File "/usr/bin/firewall-cmd", line 24, in <module>
from gi.repository import GObject
ModuleNotFoundError: No module named 'gi'
解决方案:
[root@root ~]# cd /usr/bin/
[root@root bin]# ll python*
因此,只需要用 vi 打开 /usr/sbin/firewalld 和 /usr/bin/firewall-cmd,将其中的第一行由 #!/usr/bin/python -Es 改为 #!/usr/bin/python2.7 -Es 即可!简单来说就是把 python 改为python2.7 就OK了
重启防火墙:
systemctl restart firewalld
拒绝连接
- 查看防火墙是否开启redis端口
systemctl status firewalld
- 开启端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
- 重启防火墙
systemctl restart firewalld.service
- 查看端口
firewall-cmd --list-ports
- 修改redis配置文件
find / -name redis.conf
这个是查找文件路径 - 找到后进入
vi redis.conf
- 修改:
bind 127.0.0.1 redis默认本地访问,可以吧bind 127.0.0.1注释掉,或者把127.0.0.1改为0.0.0.0 protected-mode no redis保护模式默认开启,把yes改成no,关掉保护模式 daemonize yes redis默认前台开启这不把它改了,no变yes,后台运行
- 重新启动
[root@localhost bin]# ./redis-server config/redis.conf
./redis-cli -p 6379
测试性能
redis-benchmark: Redis官方提供的性能测试工具,参数选项如下:
简单测试:
# 测试:100个并发连接 100000请求
redis-benchmark -h localhost -p 6379 -c 100 -n 100000