热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

第三十一章:近距离接触Redis

一、前言从本章节开始我们就进入了Redis的学习,对于刚刚步入职场的初级程序猿来说,Redis一直带有一种神秘色彩,本章节我们就近距离接触Redis,来说一说什么是Redis,如何

一、前言

从本章节开始我们就进入了 Redis 的学习,对于刚刚步入职场的初级程序猿来说,Redis 一直带有一种神秘色彩,本章节我们就近距离接触 Redis,来说一说什么是 Redis,如何使用 Redis,说到使用 Redis,这里我们使用了 CentOS 6.9 64 位虚拟机系统进行操作,官方是没有提供 Windows 版本的安装包的,所以我们直接使用了 Linux 系统(微软貌似有维护 Windows 版本),在讲解中我会给出下载地址,接下来就开始我们今天的学习吧。

二、Redis 介绍

1、什么是 Redis?

  • Redis 是用 C 语言开发的一个开源的高性能键值对(key-value)内存数据库。
  • 它提供五种数据类型来存储值:字符串类型、散列类型、列表类型、集合类型、有序集合类型。
  • 它是一种 NoSQL 数据库。

说到 NoSQL,那么问题就来了,什么是 NoSQL 呢?

2、什么是 NoSQL?

  • NoSQL,即 Not-Only SQL(不仅仅是SQL),泛指非关系型的数据库。
  • 什么是关系型数据库?数据结构是一种有行有列的数据库(比如 MySQL,Oracle 等)。
  • NoSQL 数据库是为了解决高并发、高可用、高可扩展、大数据存储问题而产生的数据库解决方案。(这里需要注意的是,大数据存储是 NoSQL 的一个特点,并不适用于所有非关系型数据库,这里 Redis 就不适用,典型代表是 HBase)。
  • NoSQL 可以作为关系型数据库的良好补充,但是不能替代关系型数据库。

3、NoSQL 数据库分类

1)键值(Key-Value)存储数据库

  • 代表产品:Redis
  • 典型应用: 内容缓存,主要用于处理大量数据的高访问负载
  • 数据模型: 一系列键值对
  • 优势:快速查询
  • 劣势:存储的数据缺少结构化

2)列存储数据库

  • 代表产品:HBase
  • 典型应用:分布式的文件系统
  • 数据模型:以列簇式存储,将同一列数据存在一起
  • 优势:查找速度快,可扩展性强,更容易进行分布式扩展
  • 劣势:功能相对局限

3)文档型数据库

  • 代表产品:MongoDB
  • 典型应用:Web 应用(与Key-Value类似,Value是结构化的)
  • 数据模型: 一系列键值对
  • 优势:数据结构要求不严格

4)图形(Graph)数据库

4、Redis 应用场景

  • 内存数据库(登录信息、购物车信息、用户浏览记录等)
  • 缓存服务器(商品数据、广告数据等等)(最多使用)
  • 解决分布式集群架构中的 session 分离问题(session共享)
  • 任务队列。(秒杀、抢购、12306 等等)
  • 支持发布订阅的消息模式
  • 应用排行榜
  • 网站访问统计
  • 数据过期处理(可以精确到毫秒)

三、Redis 单机版安装配置

1、Redis 下载

1)下载地址

  • 官网地址:http://redis.io/
  • 中文官网地址:http://www.redis.cn/
  • 下载地址:http://download.redis.io/releases/
  • Windows 版本下载地址:https://github.com/MicrosoftArchive/redis/releases

这里我们给出了两个下载地址,分别是 Linux 版本和 Windows 版本,这里需要大家知道的是 Windows 版本并不是官方来维护的,而是由微软的一个团队来维护的,读者使用哪个版本都可以,我们演示是使用的 Linux 版本。

《第三十一章:近距离接触Redis》
《第三十一章:近距离接触Redis》

我们打开中文官网地址,这里我们没有下载最新的版本,而是下载的 3.2.9 这个版本。

2、Redis 安装

这里我们先启动起来虚拟机,然后将下载好的 Redis 安装包上传到虚拟机中(VMware 虚拟机如何安装 CentOS 系统请自行百度),上传安装包到虚拟机可以使用 CentOS 的 rz 命令或者使用 ftp 工具上传。接下来就是我们的安装步骤了:

1)第一步:安装 C 语言需要的 gcc 环境:由于 Redis 是由 C 语言开发的,所有 gcc 环境需要安装。

yum install gcc-c++

2)第二步:解压缩 Redis 源码压缩包:这里我们把安装包上传到了 /ftpfile 目录下。

《第三十一章:近距离接触Redis》
《第三十一章:近距离接触Redis》

tar -zxf redis-3.2.9.tar.gz

3)第三步:编译 Redis 源码,进入 redis-3.2.9 目录,执行编译命令

make

4)第四步:安装 Redis,需要通过 PREFIX 指定安装路径,这里我们会安装到 /tools 目录下,Redis 目录不存在会自动创建

make install PREFIX=/tools/Redis

我们来到 /tools/Redis 目录下,就看到了一个 bin 目录,这就是 Redis 安装后的文件。

《第三十一章:近距离接触Redis》

以上几步就完成了 Redis 的安装。

3、Redis 启动

Redis 启动分为前端启动后端启动(守护进程启动),下面我会对这两种情况分别进行演示。

1)前端启动

(1)启动命令:redis-server,直接运行 bin/redis-server 将以前端模式启动,这里我们先进入到 /tools/Redis/bin 目录下,看一下目录结构:

《第三十一章:近距离接触Redis》
《第三十一章:近距离接触Redis》

执行前端启动命令:

./redis-server

《第三十一章:近距离接触Redis》
《第三十一章:近距离接触Redis》

默认端口为 6379。

(2)关闭命令:ctrl+c

启动缺点:客户端窗口关闭则 redis-server 程序结束,不推荐使用此方法

2)后端启动(守护进程启动)

(1)第一步:拷贝源码包中的 redis-3.2.9/redis.conf 配置文件到 Redis 安装目录的 bin 目录

cp /ftpfile/redis-3.2.9/redis.conf /tools/Redis/bin/

(2)第二步:修改 redis.conf,将 daemonize 由 no 改为 yes,这里需要使用到 vi/vim 命令

《第三十一章:近距离接触Redis》
《第三十一章:近距离接触Redis》

(3)第三步:执行启动命令

./redis-server redis.conf

这样就能启动成功了,下面我们使用查询命令查询一下 Redis 是否启动成功

ps -ef | grep redis

《第三十一章:近距离接触Redis》
《第三十一章:近距离接触Redis》

可以看到,我们刚刚配置好的 Redis 已经启动成功了,此时的进程号为 8896。

(4)后端启动的关闭方式

  • 非正常关闭(不推荐使用):kill -9 8896 (直接杀死进程,这里需要刚才查询的进程号)
  • 正常关闭:./redis-cli shutdown

4、Redis 是否启动成功测试

Redis 有多种客户端,有自带命令行客户端、图形界面客户端以及程序客户端(Java 客户端 Jedis),这里我们就是用最简单的自带命令行客户端来测试一下 Redis 是否启动成功。在 bin 目录下,有一个 redis-cli,这就是自带命令行客户端,那么我们要怎样来使用它呢?

1、命令格式

./redis-cli -h 127.0.0.1 -p 6379

参数说明:

  • -h:redis 服务器的 ip 地址
  • -p:redis 实例的端口号

《第三十一章:近距离接触Redis》
《第三十一章:近距离接触Redis》

连接成功后,我们输入 ping,系统如果返回 PONG,就说明 Redis 已经可以使用了。

四、小结

本章节对 Redis 的下载、安装、启动以及关闭进行了讲解,详细讲解了 Redis 的安装步骤以及前后端启动的差异,也讲到了如何链接 Redis 服务器,相信看完之后的小伙伴都已经能够掌握 Redis 的基本使用了,这个章节只是对 Redis 的一个入门,在后续的章节会更为深入的了解 Redis。


推荐阅读
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 在使用达梦数据库时,管理员可能会遇到连接频繁中断或特定SQL语句语法错误的问题。这些问题通常源于开发人员在创建对象时的不规范操作。为了解决这些问题,建议对数据库配置进行优化,并确保所有SQL语句符合达梦数据库的标准语法。此外,定期检查和维护数据库连接参数,以及对异常日志进行详细分析,也有助于及时发现并解决问题。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 本文深入探讨了如何选择适合业务需求的MySQL存储引擎,详细解析了不同存储引擎的特点、适用场景及其在数据存储和管理中的优势。通过对比InnoDB、MyISAM等主流引擎,为读者提供了全面的技术指导和专业建议,帮助开发者在实际应用中做出明智的选择。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • Oracle字符集详解:图表解析与中文乱码解决方案
    本文详细解析了 Oracle 数据库中的字符集机制,通过图表展示了不同字符集之间的转换过程,并针对中文乱码问题提供了有效的解决方案。文章深入探讨了字符集配置、数据迁移和兼容性问题,为数据库管理员和开发人员提供了实用的参考和指导。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
author-avatar
手浪用户2602922465
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有