Redis特性

Redis特性

redis特性

1. 速度快

  1. 内存:数据存储在内存中,读写数据的时候都不会受到硬盘 I/O 速度的限制,所以速度极快。不同介质速度也是不同的.比如ssd,和机械速度时不同的
  2. 单线程:避免了不必要的上下文切换和竞争。不用考虑各种锁的问题,不存在加锁释放锁操作,不会因死锁而导致的性能消耗;
  3. Redis使用I/O多路复用技术,可以处理并发的连接。redis使用非阻塞I/O;

redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间。

这里“多路”指的是多个网络连接,“复用”指的是复用同一个线程。

2. redis持久化

redis所有数据都保存在内存中,按理说会断电丢失数据.
硬盘是具有持久化特征的,比如说电脑蓝屏时也会将数据down pull到磁盘. redis也会将数据异步的写入到磁盘.提供了RDB 和AOF两种方式.进行持久化,然后进行恢复.

3. 多种数据结构

String 最基本的数据类型,二进制安全

hash String组成的字典,适用于存储对象

linked List 列表按照String元素插入的有序列表

Sets String元素组成的无序集合,通过哈希实现,不允许重复

sorted Set 通过分数来为集合中的成员进行从小到大的排序,不允许重复

特殊类型

bitMap 位图 很小的内存高效存储数据

hyperLoglog超小内存唯一值计算12k,上亿或者是10亿都是12k

GEO 地理信息位置 经度纬度

4. 多语言

  1. java
  2. python
  3. php
  4. lua
  5. ruby
  6. nodejs
  7. 等等

5. 功能丰富

  1. 消息订阅
  2. lua脚本
  3. 事物
  4. pipeline

6. 简单

  1. 不依赖外部库
  2. 单线程模式
  3. 23000行代码

6. 高可用,分布式

  1. 2.8版本redis-sentinel支持高可用
  2. 3.0版本redis-cluster支持分布式