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

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

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竞品对比

【云原生进阶之PaaS中间件】第一章Redis-1.1简介_第2张图片
  • 性能极高 – 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

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

打开文件夹,内容如下:

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

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

redis-server.exe redis.conf 

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

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

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

切换到redis目录下运行

redis-cli.exe -h 127.0.0.1 -p 6379

设置键值对

set myKey abc

取出键值对

get myKey
【云原生进阶之PaaS中间件】第一章Redis-1.1简介_第6张图片

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

《云原生进阶之容器》专题索引:

  1. 第一章Docker核心技术1.1节——Docker综述

  1. 第一章Docker核心技术1.2节——Linux容器LXC

  1. 第一章Docker核心技术1.3节——命名空间Namespace

  1. 第一章Docker核心技术1.4节——chroot技术

  1. 第一章Docker核心技术1.5.1节——cgroup综述

  1. 第一章Docker核心技术1.5.2节——cgroups原理剖析

  1. 第一章Docker核心技术1.5.3节——cgroups数据结构剖析

  1. 第一章Docker核心技术1.5.4节——cgroups使用

  1. 第一章Docker核心技术1.6节——UnionFS

  1. 第一章Docker核心技术1.7节——Docker镜像技术剖析

  1. 第一章Docker核心技术1.8节——DockerFile解析

  1. 第一章Docker核心技术1.9节——docker-compose容器编排

  1. 第一章Docker核心技术1.10节——Docker网络模型设计

  1. 第二章——Kubernetes概述

  1. 第二章Controller Manager原理剖析--2.1节Controller Manager综述

  1. 第二章Controller Manager原理2.2节--client-go剖析

  1. 第二章Controller Manager原理2.3节--Reflector分析

  1. 第二章Controller Manager原理2.4节--Informer机制剖析

  1. 第二章Controller Manager原理2.5节--DeltaFIFO剖析

  1. 第二章Controller Manager原理2.6节--Informer controller

  1. 第二章Controller Manager原理2.7节--Indexer剖析

  1. 第二章Controller Manager原理2.8节--Resync机制

  1. 第三章List-Watch机制3.1节-- List-Watch机制剖析

  1. 第四章Operator原理4.1节--定制资源(Custom Resource)

  1. 第四章Operator原理4.2节--CRD

  1. 第四章Operator原理4.3节--Operator模式

  1. 第四章Operator原理4.4节--Operator深入实践

  1. 第五章容器运行时5.1节--容器运行时总述

  1. 第五章容器运行时5.2节--容器运行时接口规范CRI

  1. 第五章容器运行时5.3.1--runC简介与使用

  1. 第五章容器运行时5.3.2--runC原理解读

  1. 第五章容器运行时5.4--容器运行时之Firecracker

  1. 第五章容器运行时5.5--容器运行时之Kata Container

  1. 第五章容器运行时5.6--容器运行时之gVisor

  1. 第六章容器网络6.1--Docker网络模型

  1. 第六章容器网络6.2--K8S网络模型

  1. 第六章容器网络6.3--CNI及各CNI网络解决方案简述

  1. 第六章容器网络6.4.1--Flannel组网方案综述

  1. 第六章容器网络6.4.2--Flannel的安装与部署

  1. 第六章容器网络6.4.3--Flannel网络模式

  1. 第六章容器网络6.5.1--Calico网络方案综述

  1. 第六章容器网络6.5.2--Calico网络架构详述

  1. 第六章容器网络6.5.3--Calico安装与部署

  1. 第六章容器网络6.6.1--Cilium网络方案概述

  1. 第六章容器网络6.6.2--Cilium部署

  1. 第六章容器网络6.7.1--阿里云Terway网络模式综述

你可能感兴趣的:(云原生进阶-PaaS专栏,redis,paas,中间件,云原生,缓存)