一、Redis简介
Redis官网:Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库、缓存和消息代理。它支持诸如字符串、散列、列表、集、带范围查询的排序集、位图、hyperloglogs、带半径查询和流的地理空间索引等数据结构。Redis具有内置的复制、Lua脚本、LRU清除、事务和不同级别的磁盘持久性,并通过Redis Sentinel和带有Redis集群的自动分区提供高可用性。
百度百科:Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
二、Redis中的数据结构
Redis作为一个nosql数据库以Key-Value数据格式存储的方式,其数据格式有以下类型:
- String:二进制安全,可以存储任何数据,如序列化对象或者base64格式的图片
- Hash:在Redis中Hash是一个field和value的映射表,适合存储对象,每个hash可以存储2^32-1键值对(约40多亿)
- List:是一个字符串双向链表结构,主要功能有push、pop等,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边),每个List最多包含2^32-1个元素
- Set:哈希表结构增删改查时间复杂度O(1),是字符串的无序集合, 成员不重复唯一存在。
- ZSset:与Set一样是字符串类型的集合,ZSet每个元素会关联一个double类型的分数。Redis通过分数为ZSet元素进行从大到小排序,元素不重复且唯一,但是分数可以重复。