一、引言
设计模式写完了,相当于重新学了一遍,每次学习都会有不同的感受,对设计模式的理解又加深了,理解的更加透彻了。还差一篇关于设计模式的总结的文章了,写完这篇总结性的文章,设计模式的文章就暂时要告一段了,这篇总结性的文章我会尽快补上的。从今天开始,我就把我学习Redis的过程记录下载,以备以后查询观看。很久以前就接触过Redis,但是还没形成体系,最近有时间,就重新来学习一下,争取系统性的掌握Redis的各个方面。好了,废话不多说了,开始正文。
二、NoSQL简介和分类
在软件构建过程中,如果软件系统的规模不是很大,用户流量也不是很大,像一般做法开发就好,也不需要使用特别的技术。如果我们开发的软件系统的用户量很大,大量的用户频繁的访问就会带来另外一个问题,就是高并发,如果不能很好的解决并发问题,会使系统运行缓慢,用户体验降低,最后的结果是您的用户的大量流失。对于一个Web系统来说,用户就是资本,那该怎么解决高并发的问题呢?有一项技术是必须要用到的,那就是缓存。我们先给大家介绍一个概念“NoSQL”,NoSQL是什么呢?我们来看看它的定义吧,如下:NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,不仅仅只有关系型数据库,SQL代指关系型数据库,是一项全新的数据库革命性运动,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,这一概念无疑是一种全新的思维的注入。
我们简单的看看NoSQL的分类,看了它的分类,对我们理解Redis很有帮助。
1、键值(Key-Value)存储数据库
这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。类似数据库有:Tokyo Cabinet/Tyrant,Redis,Voldemort, Oracle BDB。
2、列存储数据库。
这类型的数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。该类型的数据库如下:Cassandra,HBase,Riak。
3、文档型数据库
这类型的数据库和第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。该类型的数据库有:CouchDB,MongoDb。 国内也有文档型数据库SequoiaDB,已经开源。
4、图形(Graph)数据库
图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。
NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。如:Neo4J,InfoGrid, Infinite Graph。
现在我们对NoSQL数据库有了基本的认识,NoSQL数据也是有自己的使用场景的,以下场合使用NoSQL数据库,如下:
1、数据模型比较简单,复杂了就是用关系型数据库了;
2、需要灵活性更强的IT系统;
3、对数据库性能要求较高;
4、不需要高度的数据一致性,比如Redis是支持事务的,但是它的事务不能保证全部提交或者全部回滚的,也就是说数据的一致性不能保证;
5、对于给定key,比较容易映射复杂值的环境。
大家看到了吧,其实Redis数据库就是属于NoSQL数据库里面的第一种分类,也就是“键值存储数据库”,所以说Redis也是NoSQL数据库的,没毛病。接下来,让我们认识一下Redis数据库吧。
三、Redis简介
在这里我们简单介绍一下Redis数据库,让大家对它有一个基本的认识,我们先来看看Redis数据库的定义吧。
Remote Dictionary Server(Redis这个名称是一个缩写)是一个基于 key-value 键值对的、可以持久化的、完全开源免费的、遵守BSD协议的内存数据库存储系统,常用作缓存或者消息队列。支持多种数据结构,包括 string (字符串)、list (链表)、set (集合)、zset (sorted set:有序集合)和 hash(哈希类型)。这些数据类型都支持 push/pop、add/remove 及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
接下来,我们在说说Redis的优势的,如果没有优势,鬼才会使用它呢。
1、读写性能极高 – Redis读的速度是110000次/s,写的速度是81000次/s,所以使用Redis缓存数据,存取数据几乎是0感觉,当然是对于用户来说的 。
2、支持丰富的数据类型 – Redis支持丰富的数据类型,如: String(字符串), Lists(链表), Hash(哈希),Set(无序集合) 及 ZSet(有序集合)等数据类型,所以我们放弃了Memched,因为它支持的数据类型太少了。
3、所有操作支持原子性 – Redis的所有操作都是原子性的,意思就是要么成功执行,要么失败。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
4、丰富的特性 – Redis支持 publish/subscribe(发布/订阅),也支持事务、队列、持久化,可以设置key过期时间等等特性。
好了,既然是简介,先就说道这里吧,还有很多特性,我们在学习的过程中在一一交代吧。
四、VMWare Pro和Linux的安装
到了这一节,是该上主食的时候了。Redis可以安装到Windows环境下,当然也可以安装到Linux环境下,这两种环境的安装我都会一一介绍的。既然要安装到Liunx环境下,我不想装两个系统,当然你可以装两个系统,比如:Windows 10 和 CentOS 7。选择的是第二个方案,先装虚拟机,然后再在虚拟机中安装Redis。所以准备阶段要先把虚拟机和Linux系统安装好,下面我们就一步一步的教大家来操作,很简单,大家不要喷,如果大家很熟悉,可以跳过,我写这段只是给自己留个备份,以后自己可以复习。不多说了,开始一步一步的安装。
4.1、VMWare Pro的安装
1】、我们可以去“百度”,如果知道官网,也可以直接去官网下载VMWare Pro软件安装包,地址如下:https://my.vmware.com/en/web/vmware/info/slug/desktop_end_user_computing/vmware_workstation_pro/14_0?wd=&eqid=bdde195a00027b2c000000025a55be26
2】、下载后,可以双击安装文件,开始虚拟机的安装。出现【安装向导】对话框,直接点击【下一步】按钮,开始安装步骤。
3】、选择接受协议条款,然后点击【下一步】按钮,继续
4】、在这一步,我们可以更改安装目录,建议选择【增强型键盘驱动程序】,然后点击【下一步】按钮,继续
在上图,点击【更改】按钮,打开【更改目标文件夹】对话框,在该对话框选择好目录,然后点击【确定】按钮,返回上一个对话框。
5】、在这一步,可以保持默认选择就好,然后点击【下一步】按钮,继续
6】、在“快捷方式”这一步,为了自己使用方便,这两项我都是选择,然后点击【下一步】按钮,继续
7】、在这一步,已经准备好安装VMWare Pro,然后,点击【安装】按钮,开始安装程序。
8】、在这一步,我们可以看到安装的进度。安装进度完成后,会自动跳到完成页面。
9】、安装完成,如果我们直接点击【完成】按钮,完成VMWare Pro的安装,该版本当前是试用版本,可以点击【许可证】按钮,继续认证。
10】、输入VMware Workstation Pro 14 永久许可证激活密钥(FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA 或 CV7T2-6WY5Q-48EWP-ZXY7X-QGUWD,二选一),点击【输入】按钮
11】、最后,我们点击【完成】按钮,完成VMWare Pro的安装。
12】、运行虚拟机,打开虚拟机的窗口,窗口如下:
13】、如果安装的时候没有输入许可证秘钥,可以点击【帮助】--【输入许可证秘钥】
14】、输入VMware Workstation Pro 14 永久许可证激活密钥(FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA 或 CV7T2-6WY5Q-48EWP-ZXY7X-QGUWD,二选一),点击确定,至此VMware Workstation Pro 14安装过程全部结束。
15】、安装完成了,我们看看我们的虚拟机是否已经激活了,点击菜单【帮助】--【关于VMWare Workstations】,看到“许可证信息”的过期为:永不过期,证明全部安装完成。
好了,到此为止,我们的VMware Workstation Pro算是全部的、正确的安装完成了。我们有了虚拟机了,下一步,就要在虚拟机中安装Linux操作系统了。
4.2、Linux的安装(在虚拟机里的安装)
1】、准备工作,准备什么,我们最起码先要所需要的软件下载下来。
a)下载和安装VMware workstation14(此步已经完成)
b)下载CentOS7安装包,地址如下:https://www.centos.org/download/,截图如下:
c)下载SSH Secure Shell Client,这个工具可以连接Linux系统,工具很好用。官网地址如下:https://www.ssh.com/ssh/,截图效果如下:
2】、VMware虚拟机的配置
2.1)、打开虚拟机软件“VMware Workstation”,选择【创建新的虚拟机】,当然也可以从菜单里面打开创建虚拟机的窗口。
2.2)、显示【新建虚拟机向导】对话框,选择“典型”选项,点击【下一步】按钮,继续
2.3)、显示【安装客户机操作系统】对话框,选择【稍后安装操作系统】,点击【下一步】按钮,继续
2.4)、显示【选择客户端操作系统】对话框,我们选择“Linux(L)”,版本选择“CentOS 7 64位”,点击【下一步】按钮,继续
2.5)、在【命名虚拟机】对话框中,我们可以输入“虚拟机名称”;点击“浏览”按钮,选择虚拟机文件保存的位置;点击【下一步】按钮,继续
2.6)、在【指定磁盘容量】对话框中,可以根据实际的情况,选择自己设计,或者使用的默认设置,我重新修改了一下“磁盘最大大小”,其他保持默认的选项,点击【下一步】按钮,继续
2.7)、到达此步步骤,说明,虚拟机的配置基本完成,但是,我们还要通过【自定义硬件】来配置ISO的文件映射,内存,CPU等信息,这个配置完成就可以安装系统了。我们继续点击【自定义硬件】按钮,来配置硬件,
2.8)、在此步骤,我们要修改一下内存,默认值是1G,我设置为2G,可以根据自己的情况选择
2.9)、在当前对话框中,我们选择【新CD/DVD】选项卡, 选择【使用ISO镜像文件】,然后点击【浏览】,找到刚才下载的centOS7镜像文件,然后点击下面的【关闭】按钮,返回上层窗口。
2.10)、在该窗口,我们点击【完成】按钮,到此,虚拟机就创建完成了,下面我们该安装CentOS操作系统了。
3】、开始安装CentOS7操作系统
3.1)、开启虚拟机
3.2)、开始安装CentOS系统,我比较幸运,一次就安装好了,没有遇到什么问题。
3.2)、这是CentOS系统的安装过程,没什么可说的,我们就是等待就好了。
3.2)、选择语言“中文-简体中文”
3.3)、接下来显示“安装信息摘要”页面;
3.4)、软件选择:决定了系统安装后包括哪些功能,如果使用默认值,那么系统安装后是没有图形界面的;选择“GNOME 桌面”,会显示图形界面;本着学习的目的,这里选择默认设置【最小安装】
3.5)、安装位置:分区配置我们选择【自动配置分区】,该值也是默认值。
3.6)、网络和主机名:打开连接开关,记住IP地址,SSH登录时使用,设置主机名,点击【应用】生效,单机【完成】按钮完成设置。
3.7)、开始安装
3.8)、设置ROOT密码,可以在安装系统的过程中设置Root的密码。
3.9)、现在可以安装了
3.10)、按照步骤设置,最后安装完成,点击【重启】按钮,准备开始使用系统。
3.11)、系统重启后,Linux login:root,密码就是你设置的密码,输入密码,显示如下图,证明登陆成功。(需要说明,输入密码的时候不会出现*号,不会出现输入一个字符,就出现一个*号的情况。输入前,必须用鼠标点击Linux系统的黑色桌面,才可以输入)
4】、现在我们使用SSH登录Linux
4.1)、打开SSH软件,点击【Quick Connect(快速链接)】按钮,来连接服务器。
4.2)、配置连接,输入Linux系统的IP地址,端口号和用户名,然后点击【连接】按钮,开始连接。
根据安装CentOS配置的以太网,获取IP地址:192.168.127.128,端口:22,是默认值,用户名就是Root
4.3)、输入root的密码,如果是第一次连接,会提示如下的窗口,根据自己的选择。
4.4)、登录成功
出现该窗口,说明使用SSH登陆Linux系统已经成功了。恭喜你,也恭喜我自己。
五、总结
终于写完了,有很多截图要制作,所以时间上花的比较多,用了5个小时,但是对于自己来说是值得。仔细回想每一步,还就像在眼前,系统做好了,下一步就是在Linux系统上安装Redis了。