Redis实践(1)简单介绍与安装

Redis
placeholder image
admin 发布于:2023-05-27 08:45:35
阅读:loading

1.背景介绍

早在19和20年全面学习SpringBoot相关技术知识时也曾经有学习到Redis,主要是看了几家的视频教程,但是未曾有具体的实践,后来再学习到Docker和Spring Session框架的Redis存储时,又稍微的实践了一丢丢,所有的实践也就仅此而已,蜻蜓点水的程度,谈不上有掌握,更谈不上深度掌握,所以我把Redis这块的技术暂时搁浅了,直到前几个月掌握到SpringCloud Alibaba系列技能后,又想起来Redis这块的技术,对于专业的技术开发者,怎么能容忍自己不去掌握了,所以一个月以来花了许许多多的周末和晚上的闲暇时光,进行了学习实践。

本次相关实践是站在自己的水平面上进行的实践,实践范围也主要围绕个人感兴趣的知识范围内的实现,只占整合Redis相关技术圈非常非常小的一部分,核心围绕Redis的主从复制、集群架构、桌面客户端、SpringBoot Data Redis集成展开,对于Redis的基础和基本使用不做过多介绍,以实践使用为主,建立在有一定的知识掌握前提。

2.Redis介绍

简介

(1)Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。

(2)Redis 与其他 key - value 缓存产品有以下三个特点:

      A.Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

      B.Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

      C.Redis支持数据的备份,即master-slave模式的数据备份。

(3)Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。

优势

(1)性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。

(2)丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

(3)原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。

(4)丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

Redis与其他key-value存储有什么不同?

(1)Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。

(2)Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

3.Redis安装

Redis可以安装在Linux、macOS、Windows服务器上,可以从英文官方网站 https://redis.io/download 或者中文网站 http://redis.cn/ 下载 Redis 安装包,可以看到英文的官方网站提供了最新版本和各种历史版本的下载,但本次使用基于源码的编译安装(Install Redis from Source)形式,按照官网的安装介绍几个步骤下来即可安装完成,参考官网安装介绍页 “https://redis.io/docs/getting-started/”,参考如下图所示:

image.png

先验证是否有安装gcc-c++,编译redis源代码,参考如下命令:

yum list installed | grep "gcc-c++" (参考输出:Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast)

yum install gcc-c++ -y(若未安装该命令可进行安装)

wget https://download.redis.io/redis-stable.tar.gz(假设当前`pwd`命令为/app/redis,输入该命令将下载最新稳定版本的Redis安装包,下载下来的文件名称为redis-stable.tar.gz

tar -xzvf redis-stable.tar.gz(解压命令执行后将会出现redis-stable文件夹)

cd redis-stable(进入该目录,所以进入后的完整目录为/app/redis/redis-stable,注意不要修改文件夹名字)

make(执行make命令,根据Makefile文件编译源代码、连接、生成目标文件、可执行文件,所以在命令执行后在src目录生成redis-server、redis-cli可执行文件)

make PREFIX=`pwd` install(官网教程中安装命令为make install,安装后的可执行文件就在src目录中,增加PREFIX后会在根目录中生成bin文件夹,可执行文件在bin目录,所以此处我们使用PREFIX参数)

提示:有时候make编译不通过,在yum安装命令后,仍然编译失败,可尝试将解压的redis-stable删除,重新再解压。

#启动:按默认参数启动
bin/redis-server 
#启动:按照某个配置文件的参数启动
bin/redis-server /app/redis/redis-stable/redis.conf
bin/src/redis-cli shutdown
#关闭:按指定端口和指定IP
bin/src/redis-cli shutdown -h 192.168.244.134 -p 6379 shutdown
#连接远程服务器 
bin/redis-cli -h 192.168.244.134 -p 6379
输入密码:auth chendd
#连接接远程带密码服务器
bin/redis-cli -a chendd -h 192.168.244.134 -p 6379

所以,安装完毕后的使用bin/redis-server命令启动后的界面参考如下:

image.png


上图的启动皆是Redis的全部默认参数启动,使用非后台进程启动的方式,且安装的Redis版本号为7.0.11,也可以再新的连接窗口使用bin/redis-cli命令输入“bin/redis-cli -v”可查看版本号。截止到目前为止并未修改任何的Redis默认配置,一切皆是默认的,如法炮制我一共在三台Linux虚拟机上做了上述的安装,后续玩一些稍微高端点的花活,三台服务器的IP地址如下:

192.168.244.134
192.168.244.138
192.168.244.139

4.相关下载

redis-stable.tar.gz

SpringBoot集成主从复制:https://gitee.com/88911006/chendd-examples/tree/master/spring-boot-redis-master-slave

SpringBoot集成Cluster:https://gitee.com/88911006/chendd-examples/tree/master/spring-boot-redis-cluster

SpringBoot集成Redisson:https://gitee.com/88911006/chendd-examples/tree/master/spring-boot-redis-redisson

其它相应的下载见各个文章内部的下载部分,本系列相关的实例分享全部均可下载。

 点赞


 发表评论

当前回复:作者

 评论列表


留言区