1.1.Redis引入与概述
Redis诞生于2009年全称是Remote Dictionary Server 远程词典服务器,是一个基于内存的键值型NoSQL数据库。
特征:
-
键值(key-value)型,value支持多种不同数据结构,功能丰富
-
单线程,每个命令具备原子性
-
低延迟,速度快(基于内存、IO多路复用、良好的编码)。
-
支持数据持久化
-
支持主从集群、分片集群
-
支持多语言客户端
Redis的官方网站地址:Redis - The Real-time Data Platform,目前最新的版本为7.0.13,为了稳定性,本课程选择6.2.13版本。
点击下载即可
1.2.Redis的使用场景
-
会话缓存(Session Cache):在Web应用中,用户会话信息经常需要被存储和检索。这些信息可能包括用户登录状态、购物车内容等。使用Redis作为会话缓存,可以存储这些会话信息,并在需要时快速检索。相比于其他存储解决方案,如Memcached,Redis提供了持久化服务,这意味着即使服务器重启,会话信息也不会丢失。
-
排行榜/计数器:Redis的有序集合(Sorted Set)和列表(List)数据结构使其成为实现排行榜的理想选择。例如,你可以利用有序集合的排序功能,轻松地创建一个游戏得分排行榜。同时,Redis的原子性操作使其成为实现计数器的理想工具,例如跟踪页面访问量、文章阅读量等。
-
消息队列:在分布式系统中,消息队列是一种重要的通信方式。Redis的发布/订阅模型和列表数据结构可以实现简单的消息队列。生产者可以将消息发布到特定的频道,消费者可以订阅这个频道并接收消息。Redis的高读写速度使得它能够处理高并发的消息队列。
-
全页缓存(Full Page Cache,FPC):在高流量的Web应用中,减轻数据库负载是提高性能的关键。通过使用Redis作为全页缓存,可以存储预渲染的页面,并在用户请求时快速提供,而无需查询数据库。
-
数据存储和配置:Redis可以作为数据存储系统来使用,对于一些不需要长期持久化的数据,或者一些频繁变动的数据,可以使用Redis进行存储。同时,Redis也常常用来存储一些系统的配置信息,这样在需要读取配置的时候,可以直接从Redis中获取,而不需要读取文件或者查询数据库。
1.3.Redis数据结构
大多数企业都是基于Linux服务器来部署项目,而且Redis官方也没有提供Windows版本的安装包。因此课程中会基于Linux系统来安装Redis.此处选择的Linux版本为CentOS 7.先完成Redis数据库的安装。
1.3.1.依赖库
Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖:
[root@nosql ~]# yum install -y gcc tcl
1.3.2.上传安装包并解压
然后将课前资料提供的Redis安装包上传到虚拟机的/data/soft目录:
[root@nosql ~]# mkdir -p /data/soft [root@nosql ~]# cd /data/soft [root@nosql soft]# rz [root@nosql soft]# ls redis-6.2.13.tar.gz
解压缩:
[root@nosql soft]# tar -xvf redis-6.2.13.tar.gz
解压后:
[root@nosql soft]# ls redis-6.2.13 redis-6.2.13.tar.gz
进入redis目录:
[root@nosql soft]# cd redis-6.2.13/
运行编译命令:
[root@nosql redis-6.2.13]# make && make install
安装成功.
默认的安装路径是在 /usr/local/bin
目录下:
[root@nosql redis-6.2.13]# cd /usr/local/bin/ [root@nosql bin]# ll 总用量 18936 -rwxr-xr-x 1 root root 4830424 10月 9 16:09 redis-benchmark lrwxrwxrwx 1 root root 12 10月 9 16:09 redis-check-aof -> redis-server lrwxrwxrwx 1 root root 12 10月 9 16:09 redis-check-rdb -> redis-server -rwxr-xr-x 1 root root 5004536 10月 9 16:09 redis-cli lrwxrwxrwx 1 root root 12 10月 9 16:09 redis-sentinel -> redis-server -rwxr-xr-x 1 root root 9547984 10月 9 16:09 redis-server
该目录已经默认配置到环境变量,因此可以在任意目录下运行这些命令。其中:
-
redis-cli:是redis提供的命令行客户端
-
redis-server:是redis的服务端启动脚本
-
redis-sentinel:是redis的哨兵启动脚本
1.3.3.启动
redis的启动方式有很多种,例如:
-
默认启动
-
指定配置启动
-
开机自启
1.3.4.默认启动
安装完成后,在任意目录输入redis-server命令即可启动Redis:
[root@nosql bin]# redis-server
如图:
这种启动属于前台启动
,会阻塞整个会话窗口,窗口关闭或者按下CTRL + C
则Redis停止。不推荐使用。
1.3.5.指定配置启动
如果要让Redis以后台
方式启动,则必须修改Redis配置文件,就在我们之前解压的redis安装包下(/data/soft/redis-6.2.13
),名字叫redis.conf:
[root@nosql bin]# cd /data/soft/redis-6.2.13/ [root@nosql redis-6.2.13]# ls
先将这个配置文件备份一份:
[root@nosql redis-6.2.13]# cp redis.conf redis.conf.bck
然后修改redis.conf文件中的一些配置:
[root@nosql redis-6.2.13]# vim redis.conf
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0 bind 0.0.0.0 # 守护进程,修改为yes后即可后台运行 daemonize yes # 密码,设置后访问Redis必须输入密码 requirepass zjl666
Redis的其它常见配置:
# 监听的端口 port 6379 # 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录 dir . # 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15 databases 1 # 设置redis能够使用的最大内存 maxmemory 512mb # 日志文件,默认为空,不记录日志,可以指定日志文件名 logfile "redis.log"
启动Redis:
# 进入redis安装目录 [root@nosql bin]# cd /data/soft/redis-6.2.13/ # 启动 [root@nosql redis-6.2.13]# redis-server redis.conf
停止服务:
# 利用redis-cli来执行 shutdown 命令,即可停止 Redis 服务, # 因为之前配置了密码,因此需要通过 -u 来指定密码 redis-cli -u zjl666 shutdown
1.3.6.开机自启
我们也可以通过配置来实现开机自启。
首先,新建一个系统服务文件:
[root@nosql redis-6.2.13]# vim /etc/systemd/system/redis.service
内容如下:
[Unit] Description=redis-server After=network.target [Service] Type=forking ExecStart=/usr/local/bin/redis-server /data/soft/redis-6.2.13/redis.conf PrivateTmp=true [Install] WantedBy=multi-user.target
然后重载系统服务:
systemctl daemon-reload
现在,我们可以用下面这组命令来操作redis了:
# 启动 systemctl start redis # 停止 systemctl stop redis # 重启 systemctl restart redis # 查看状态 systemctl status redis
执行下面的命令,可以让redis开机自启:
systemctl enable redis
1.4.Redis桌面客户端
安装完成Redis,我们就可以操作Redis,实现数据的CRUD了。这需要用到Redis客户端,包括:
-
命令行客户端
-
图形化桌面客户端
-
编程客户端
1.4.1.Redis命令行客户端
Redis安装完成后就自带了命令行客户端:redis-cli,使用方式如下:
redis-cli [options] [commonds]
其中常见的options有:
-
-h 127.0.0.1
:指定要连接的redis节点的IP地址,默认是127.0.0.1 -
-p 6379
:指定要连接的redis节点的端口,默认是6379 -
-a sias123
:指定redis的访问密码
执行redis-cli -a sias123
可以访问redis,并可执行redis命令,也可以直接执行redis-clis
然后使用auth sias123
去指定密码,然后就可以执行redis相关命令。
1.4.2.图形化桌面客户端
GitHub上的大神编写了Redis的图形化桌面客户端,地址:GitHub - RedisInsight/RedisDesktopManager
不过该仓库提供的是RedisDesktopManager的源码,并未提供windows安装包。
在下面这个仓库可以找到安装包:Releases · lework/RedisDesktopManager-Windows · GitHub
1.4.3.安装
找到Redis的图形化桌面客户端
解压缩后,运行安装程序即可安装
安装完成后,在安装目录下找到rdm.exe文件
双击即可运
1.4.4.建立连接
点击左上角的连接到Redis服务器
按钮
在弹出的窗口中填写Redis服务信息
点击确定后,在左侧菜单会出现这个链接
点击即可建立连接了。
Redis默认有16个仓库,编号从0至15. 通过配置文件可以设置仓库数量,但是不超过16,并且不能自定义仓库名称。
如果是基于redis-cli连接Redis服务,可以通过select命令来选择数据库:
# 选择 0号库 select 0