【云原生进阶之PaaS中间件】第一章Redis-1.1简介

news2024/11/24 16:54:53

1 Redis概述

1.1 Redis 简介

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,可用作数据库,高速缓存和消息队列代理。Redis是完全开源免费的、遵守BSD协议。

Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括字符串哈希表列表集合有序集合位图hyperloglogs等数据类型。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis 是一个高性能的key-value数据库,内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能。 Redis的出现,很大程度弥补了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。

Redis支持主从同步,通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

Redis的官网地址,非常好记,是redis.io,(域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地),Vmware在资助着redis项目的开发和维护。

从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

概括来说,Redis 与其他 key - value 缓存产品有以下三个特点:

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

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

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

1.2 Redis 优势

Redis竞品对比

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

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

  • 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

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

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

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

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

2 Redis 安装

2.1 Window 下安装

下载地址:https://github.com/dmajkic/redis/downloads

下载到的Redis支持32bit和64bit。根据自己实际情况选择,将64bit的内容cp到自定义盘符安装目录取名redis。 如 C:\reids

打开文件夹,内容如下:

打开一个cmd窗口 使用cd命令切换目录到 C:\redis 运行

redis-server.exe redis.conf 

如果想方便的话,可以把redis的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个redis.conf可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:

这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了。

切换到redis目录下运行

redis-cli.exe -h 127.0.0.1 -p 6379

设置键值对

set myKey abc

取出键值对

get myKey

2.2 Linux 下源码安装

下载地址:http://www.redis.net.cn/download/,下载最新文档版本。

本教程使用的最新文档版本为 2.8.17,下载并安装:

$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz$ tar xzf redis-2.8.17.tar.gz$ cd redis-2.8.17$ make

make完后 redis-2.8.17目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli

下面启动redis服务.

$ ./redis-server

注意这种方式启动redis 使用的是默认配置。也可以通过启动参数告诉redis使用指定配置文件使用下面命令启动。

$ ./redis-server redis.conf

redis.conf是一个默认的配置文件。我们可以根据需要使用自己的配置文件。

启动redis服务进程后,就可以使用测试客户端程序redis-cli和redis服务交互了。 比如:

$ ./redis-cliredis> set foo barOKredis> get foo"bar"

2.3 Ubuntu 下apt命令安装

在 Ubuntu 系统安装 Redi 可以使用以下命令:

$sudo apt-get update$sudo apt-get install redis-server

2.3.1 启动 Redis

$redis-server

2.3.2 查看 redis 是否启动?

$redis-cli

以上命令将打开以下终端:

redis 127.0.0.1:6379>

127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令。

redis 127.0.0.1:6379> pingPONG

以上说明我们已经成功安装了redis。

参考链接

Redis 详解

Redis概述

Redis中文官网

Redis

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/499699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高质量毕业答辩PPT模板+PPT网站

文章目录 前言一、iSlide二、office plus三、优品PPT总结 前言 提示:这里可以添加本文要记录的大概内容: 又是一年毕业季,又到了快要答辩的时候,最近有一些小伙伴找我要毕业答辩PPT模板,本着这不能拒绝啊的心态&…

20230507使用python3批量转换DOCX文档为TXT

20230507使用python3批量转换DOCX文档为TXT 2023/5/7 20:22 WIN10使用python3.11 # – coding: gbk – import os from pdf2docx import Converter from win32com import client as wc """这里需要安转包pywin32com""" # 读取pdf文件文本内容 …

探秘二分查找中的数学奇迹:如何手动求解整数x的平方根

本篇博客会讲解力扣“69. x 的平方根”这道题的解题思路。这是题目链接。 大家先来审下题: 以及示例: 还有提示: 本题常规的思路有:暴力查找、转换成指数和对数、二分查找、牛顿迭代。 转换成指数和对数的方法非常简单&#…

接口自动化测试框架9项必备功能有哪些?你一定不知道

当你准备使用一个接口测试框架或者自造轮子的时候,或许你需要先了解下一个接口自动化测试框架必须具备什么功能。 一、校验   这个很好了解,如果没有校验,单纯的执行接口的话,那就谈不上测试了。所以支持对返回值校验是一个必须…

[Golang] 爬虫实战-获取动态页面数据-获取校招信息

😚一个不甘平凡的普通人,致力于为Golang社区和算法学习做出贡献,期待您的关注和认可,陪您一起学习打卡!!!😘😘😘 🤗专栏:算法学习 &am…

Solr(1):Solr概述

1 概述 Solr 是一个基于 Apache Lucene 之上的搜索服务器,它是一个开源的、基于 Java 的信息检索库。它旨在驱动功能强大的文档检索应用程序 - 无论您需要根据用户的查询将数据服务到何处,Solr 都可以为您服务。Solr与应用程序的集成以为您服务。 下面…

es 7.x 通过DSL语句添加doc数据

一 在es中doc数据的crud操作 1.1 说明 本案例操作 接上一篇的基础上进行操作。 1.2 添加doc 方式为post http://localhost:9200/order_item/_doc 添加文档数据 必须是post提交,不能是put 1.3 查看文档数据 http://localhost:9200/order_item/_doc/_searc…

118-Linux_数据库_索引

文章目录 一.索引是什么?二.索引为什么选择b树三.测试索引1.在mysql中创建数据库 test_indexdb2.在test_indexdb中创建表 test_index3.运行程序向表中插入1万条数据,都是字符串4. 查询验证 一.索引是什么? 索引是一种特殊的文件,它包含着对数据表里所…

浅谈osgEarth操控器类的createLocalCoordFrame函数如何将局部坐标系的点转为世界坐标系下的Martix(ENU坐标)

在osgEarth操控器类的EarthManipulator中的如下函数: void EarthManipulator::setLookAt(const osg::Vec3d& center,double azim,double pitch,double range,const osg::Vec3d& posOffset) {setCenter( center );.... //…

二、PEMFC基础之电化学与反应动力学

二、PEMFC基础之电化学与反应动力学 1.电流、电流密度2.反应速率常数3.交换电流密度4.电化学动力学奠基石B-V方程5.活化损失计算Tafel公式6.计算案例 1.电流、电流密度 由法拉第定律 i d Q d t n F d N d t i\frac{dQ}{dt}\frac{nFdN}{dt} idtdQ​dtnFdN​ j i A j\frac{…

查询缓存实现、缓存更新策略选择、解决缓存穿透缓存雪崩缓存击穿问题

文章目录 1 什么是缓存?1.1 为什么要使用缓存1.2 如何使用缓存 2 给商户信息查询业务添加缓存2.1 缓存模型和思路2.2 代码如下 3 缓存更新策略3.1 数据库缓存不一致解决方案:3.2 数据库和缓存不一致采用什么方案3.3 删除缓存还是更新缓存?3.4 如何保证缓…

MySQL --- DQL

使用DDL语句来操作数据库以及表结构(数据库设计)使用DML语句来完成数据库中数据的增、删、改操作(数据库操作) 学习数据库操作方面的内容:查询(DQL语句)。 查询操作我们分为两部分学习&#…

chatgpt如何接入本地知识库?我们来看看EMNLP 2022 INFO是如何融入本地知识的

一、概述 title:You Truly Understand What I Need : Intellectual and Friendly Dialogue Agents grounding Knowledge and Persona 论文地址:You Truly Understand What I Need : Intellectual and Friendly Dialog Agents grounding Persona and Know…

基于S/Key协议的身份认证系统设计与实现【python】

实验内容 1 、 身份认证系统设计 设计身份认证系统的功能、主要界面、主要软件模块,以及采用的认证技术路线和方法。 2 、 编程实现所设计的身份认证系统 在C、Python或Java程序设计环境下,编程实现基于S/Key协议的身份认证系统。要求实现的身份认证…

计算机中丢失msvcp140.dll无法启动此程序怎么办?msvcp140.dll在哪里

电脑系统中的 msvcp140.dll 文件是 Microsoft Visual C Redistributable 组件的一部分,它们提供了许多在 Windows 操作系统中运行的应用程序所需的重要函数和库。如果丢失了 msvcp140.dll 文件,你可能会遇到多种错误,比如无法运行应用程序、系…

【RabbitMQ】安装及六种模式

文章目录 安装rabbitmq镜像访问容器内部15672端口映射到外面的端口地址RabbitMQ六种模式Hello world模式Work queues模式Publish/Subscribe模式交换机fanout类型 Routing模式Topics模式RPC模式 rabbitmq:0->1的学习 学习文档:https://www.cnblogs.com…

Java集合之双列集合

双列集合特点 双列集合一次需要添加一对数据,分别是键和值键不能重复,值可以重复键和值是一一对应的,每一个键只能找到自己对应的值键 值这个整体称为“键值对”或者“键值对对象”,Java中叫“Entry对象” 双列集合的体系结构 Ma…

linux系统systemd初始化进程

前言:目前绝大多数服务器系统以及从RHEL6换成RHEL7了,以前习惯使用service来管理系统服务的,那么现在就比较郁闷了,RHEL7系统中使用systemctl命令来管理服务。 systemctl启动、重启、停止、查看状态命令: systemctl …

算法竞赛字符串篇之C++中string的成员函数

2023年5月7日,周日中午: 今天决定从字符串这个知识点开始学起,记录一下我今天的字符串学习。 不定期更新。 相关的英文文档: https://cplusplus.com/reference/string/string/ 容量方面的成员函数: empty&#xff…