Redis 快速入门 基础篇 什么是 Redis ?
前言
随着互联网的快速发展,日益增长的海量数据不仅带来了存储上的问题,还带来了如何高效快速检索等问题。 Redis 作为一款非常欢迎的key-value 数据库,在缓存应用上展示了它出色的性能,同时 Redis 丰富的数据类型使得它在众多竞争者中脱颖而出。
一、Redis 概述
Redis 是一个开源(BSD许可)的内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。
Redis 内置了 复制,LUA脚本, LRU驱动事件,事务 和不同级别的 磁盘持久化, 并通过 Redis 哨兵和自动分区提供高可用性。
二、Redis 优势
-
客户端语言多
Redis 提供了简单的TCP通信协议,很多编程语言可以很方便地接入到 Redis ,并且由于 Redis 受到社区和各大公司的广泛认可,所以支持 Redis 的客户端语言也非常多,几乎涵盖了主流的编程语言,例如Java、Erlang、Go、Python、C、C++、Nodejs、Lua等。
-
性能极高
官方给出的数字是读写性能可以达到10万/秒。实际性能取决于机器的性能,可以使用专用的工具进行性能测试 。
-
丰富的数据类型
Redis 支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
-
原子性
Redis 的所有操作都是原子性的,同时 Redis 还支持对几个操作全并后的原子性执行。
Redis 使用单线程模型,这样不仅使得 Redis 服务端处理模型变得简单,而且也使得客户端开发变得简单。
-
丰富的功能
-
提供了键过期功能,可以用来实现缓存。
-
提供了发布订阅功能,可以用来实现消息系统。
-
支持Lua脚本功能,可以利用Lua创造出新的 Redis 命令。
-
提供了简单的事务功能,能在一定程度上保证事务特性。
-
提供了流水线(Pipeline)功能,这样客户端能将一批命令一次性传到 Redis ,减少了网络的开销。
-
-
高可用和分布式
Redis 从2.8版本正式提供了高可用实现 Redis Sentinel,它能够保证 Redis 节点的故障发现和故障自动转移。 Redis 从3.0版本正式提供了分布式实现 Redis Cluster,它是 Redis 真正的分布式实现,提供了高可用、读写和容量的扩展性
三、Redis 与其他key-value存储有什么不同?
- Redis 不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等更为复杂的数据结构的存储。并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。 Redis 的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
- Redis 运行在内存中,所以在对不同数据集进行高速读写时需要权衡内存,应为数据量不能大于硬件内存。在内存数据库方面的另一个优点是, 相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样 Redis 可以做很多内部复杂性很强的事情。
- Redis 支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
- Redis 支持数据的备份,即master-slave模式的数据备份。
总结
以上就是本文的主要内容,本文简单介绍了Redis 概念、Redis 优势,相信聪明的你都能轻松消化。本专栏后面的文章将带你由点到面全面掌握 Redis ,敬请期待哦(*^▽^*)
。
声明
以上内容均来源于网络,如有错误,请多多包含。