Redis介绍

Redis是什么

官网:https://redis.io/

中文官网:http://www.redis.net.cn/

推荐文档:http://www.redis.cn/documentation.html

官方说明:

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串哈希表列表集合有序集合位图hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区

其实就是内存的数据结构服务器。键值对集合。

特点:

Redis以内存作为数据存储介质,所以读写数据的效率极高,远远超过数据库。以设置和获取一个256字节字符串为例,它的读取速度可高达110000次/s,写速度高达81000次/s。

Redis跟memcache不同的是,储存在Redis中的数据是持久化的,断电或重启后,数据也不会丢失。因为Redis的存储分为内存存储、磁盘存储和log文件三部分,重启后,Redis可以从磁盘重新将数据加载到内存中,这些可以通过配置文件对其进行配置,正因为这样,Redis才能实现持久化。

 

Redis数据类型

string 字符串

是redis的基本数据类型,一个Key对应一个Value,其中上面说的位图也是string类型的,一个string的value最大存储250MB。

hash 哈希表

也是Key对应Value,不过这个Value是一个 redis 中string类型集合,hash特别适合用于存储对象。

每个 hash 可以存储 232 -1 键值对(40多亿)。

作用:也叫做字典,可以存储字典以及对象, 列表就像属性  值一样。

 

list 列表

列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边),可以添加重复数据。

列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。

作用:双端链表,消息队列,时间轴

Set集合

字符串的无序集合。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。一个Set中的数据不能重复。

 作用:集合的概念就是一堆不重复值的组合。

可以做交集、并集、差集等操作

ZSet有序集合

和Set一样,但是SortSet每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

SortSet的成员是唯一的,但是分数可以重复。

 作用:可以排序 优先级

Redis使用场景

众多语言都支持Redis,因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,这样可以大大节省系统直接读取磁盘来获得数据的I/O开销,更重要的是可以极大提升速度。

拿大型网站来举个例子,比如a网站首页一天有100万人访问,其中有一个板块为推荐新闻。要是直接从数据库查询,那么一天就要多消耗100万次数据库请求。上面已经说过,Redis支持丰富的数据类型,所以这完全可以用Redis来完成,将这种热点数据存到Redis(内存)中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。

总之而言,就是缓存一些经常使用的热数据。

posted @ 2017-12-21 01:41  西伯利亚的狼  阅读(363)  评论(0编辑  收藏  举报