Redis的特性

Redis的基本特性


1.速度快


(1)redis的所有数据都是存储在内存中的,这是redis速度快的主要原因。

(2)redis使用C语言来实现的,C语言实现的程序和系统更接近,因此速度比较快。

(3)redis使用单线程,预防了使用多线程产生的竞争问题。


2.基于键值对的数据结构服务器


redis中的键值对的value呢,不仅可以是字符串,而且包含了,许多的数据结构:字符串(String),哈希(hash),列表(list),集合(set),有序集合(ordered set),同时在字符串的基础之上演变出了位图(Bitmaps)和HyperLogLog两种神奇的数据结构。


3.丰富的功能


除了5种数据结构,Redis还提供了许多额外的功能:

• 提供了键过期功能,可以用来实现缓存。

• 提供了发布订阅功能,可以用来实现消息系统。

• 支持Lua脚本功能,可以利用Lua创造出新的Redis命令。

• 提供了简单的事务功能,能在⼀定程度上保证事务特性。

• 提供了流水线(Pipeline)功能,这样客户端能将⼀批命令⼀次性传到Redis,减少了网络的开 销。


4.简单稳定


Redis的简单主要表现在三个方面:

(1)Redis的源码很少,早期版本的代码只有2万行左右, 3.0版本以后由于添加了集群特性,代码增至5万行左右,相对于很多NoSQL数据库来说代码量相对 要少很多,也就意味着普通的开发和运维⼈员完全可以"吃透"它。

(2)Redis使用单线程模型, 这样不仅使得Redis服务端处理模型变得简单,而且也使得客户端开发变得简单。

(3)Redis不需要 依赖于操作系统中的类库(例如Memcache需要依赖libevent这样的系统类库),Redis自己实现了 事件处理的相关功能。


5.客户端语言多


Redis提供了简单的TCP通信协议,很多编程语言可以很方便地接入到Redis,并且由于Redis受 到社区和各⼤公司的广泛认可,所以支持Redis的客户端语言也非常多,几乎涵盖了主流的编程语言,例如C、C++、Java、PHP、Python、NodeJS等,后续我们会对Redis的客户端使用做详细说 明。


6.持久化存储


通常看,将数据放在内存中是不安全的,⼀旦发生断电或者机器故障,重要的数据可能就会丢 失,因此Redis提供了两种持久化方式:RDB和AOF,即可以用两种策略将内存的数据保存到硬盘中。

如图:


7.主从复制


Redis提供了复制功能,实现了多个相同数据的Redis副本。

如图:


8.高可用和分布式


Redis提供了高可用实现的Redis哨兵(Redis Sentinel),能够保证Redis结点的故障发现和故 障自动转移。也提供了Redis集群(Redis Cluster),是真正的分布式实现,提供了高可用、读写和 容量的扩展性。

相关推荐
书山有鹿10 分钟前
PostgreSQL psql 命令和常用的 SQL 语句整理
数据库·sql·postgresql
GottdesKrieges2 小时前
OceanBase数据库磁盘空间管理
java·数据库·oceanbase
Themberfue3 小时前
Redis ⑦-set | Zset
java·开发语言·数据库·redis·sql·缓存
Doker 多克5 小时前
Django 缓存框架
python·缓存·django
rainFFrain7 小时前
(MySQL)库的操作
数据库·mysql
八股文领域大手子8 小时前
深入理解缓存淘汰策略:LRU 与 LFU 算法详解及 Java 实现
java·数据库·算法·缓存·mybatis·哈希算法
noravinsc8 小时前
django admin 中更新表数据 之后再将数据返回管理界面
数据库·django·sqlite
Bruce-li__10 小时前
DRF凭什么更高效?Django原生API与DRF框架开发对比解析
数据库·django·sqlite
noravinsc11 小时前
connection.cursor() 与 models.objects.filter
数据库·django·原生查询·orm查询
青铜爱码士12 小时前
redis+lua+固定窗口实现分布式限流
redis·分布式·lua