当前位置: 首页 > article >正文

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),是真正的分布式实现,提供了高可用、读写和 容量的扩展性。


http://www.kler.cn/a/402914.html

相关文章:

  • 1-测试go-redis缓存数据
  • GitLab|数据迁移
  • 百度主动推送可以提升抓取,它能提升索引量吗?
  • Diving into the STM32 HAL-----DAC笔记
  • 人工智能(AI)与机器学习(ML)基础知识
  • Linux 进程概念与进程状态
  • 《Django 5 By Example》阅读笔记:p679-p765
  • 【TDOA最小二乘解算】两步最小二乘迭代的TDOA解算方法,适用于二维平面、自适应锚点(附MATLAB代码)
  • 【行之有效】实证软件工程研究方法
  • [241119] .NET 9.0.0 正式发布 | D2 Emerge 收购 CodeProject,拓展软件开发社区影响力
  • 基于 MUSA 的大语言模型推理和服务框架vLLM
  • 湘潭大学软件工程算法设计与分析考试复习笔记(四)
  • 【数据结构-表达式解析】力扣227. 基本计算器 II
  • SpringBoot中的restTemplate请求存在乱码问题的解决
  • 从熟练Python到入门学习C++(record 1)
  • 【数据结构OJ】【图论】图综合练习--拓扑排序
  • java八股-SpringCloud微服务-Eureka理论
  • Ubuntu 26.04 LTS 大升级:Qt 6 成为未来新引擎
  • 【Vue】Vue3.0(二十五)Vue3.0中的具名插槽 的概念和使用场景
  • 基于Qt智能物流管理系统的开发与应用
  • Ubuntu Linux使用前准备动作 安装vim编辑工具
  • 3D Gaussian Splatting在鱼眼相机中的应用与投影变换
  • java 增强型for循环 详解
  • 【漏洞复现】Wordpress Wholesale Market文件读取漏洞
  • 解决在Ubuntu 20.04中使用PyCharm时无法输入中文的问题
  • Linux性能优化之火焰图的起源