您的位置:首页 > 理论基础 > 数据结构算法

Redis系列(一):数据结构

2018-01-06 23:38 357 查看

1. 简介

Redis是
REmote DIctionary Server
的缩写,是一个开源的、高效的key-value数据存储系统,具有以下特点:

原子性:Redis所有操作都是原子性;

高效性:读写效率超高;

可持久化:Redis运行于内存,但可持久化到硬盘;

存储类型丰富:Redis支持5种类型的数据结构,分别是
String、Hash、List、Set、Zset
等;

特性:支持发布订阅、设置过期时间等;

2. 数据结构

2.0 键、值

Redis是key-value数据库,虽支持多种数据结构,但需要声明的是:所有key都是字符串类型,多类型数据结构只能体现在value属性
因此Redis可理解为存储字符串类型的键与5种不同类型值之间的映射关系


2.1 String

String是最基础的key-value数据结构,可用于存储任何字符串类型的数据(包括图片、序列化的对象等),其所能存储最大长度为512MB;

其中:key是字符串类型,value支持的类型包括 字符串、整型、浮点型数据;

主要操作命令有:

读:get key
写:set key value
删:del key
对于整数和浮点数还可以值自增、自减操作




2.2 Hash

Hash是一个key-value对的集合,可存储 232−1 键值对(40多亿);

其中:key是字符串类型,value是一个个的key-value对;

主要操作命令有:

写:hset key field1 value1
hmset key field1 value1 field2 value2 ……
读:hget key field1
hgetAll key
删: hdel key


示例:



2.3 List

List可以理解为简单的字符串链表结构,最多可存储232−1 元素 (40多亿);

其中:key为字符串类型,value为字符串链表;

主要命令有:

头插:lpush key value1 value2 ……
尾插:rpush key value1 value2 ……
掐头:lpop key
去尾:rpop key
范围:lrange key from to




2.4 Set

Set是字符串的无序集合结构,最多可存储232−1 个元素 (40多亿),由于Set通过哈希表实现的,因此添加,删除,查找的复杂度都是O(1);

其中:key为字符串类型,value为不可重复的字符串集合;

主要命令有:

写:sadd key value1 value2 ……
读: smembers key
sismember key value
删:srem




2.5 Zset

ZSet 和 Set一样也是String类型元素的集合,且不允许重复的成员,但不同的是每个元素(member)都会关联一个double类型的分数(score),然后根据分数升序排序, ZSet的成员是唯一的,但分数(score)是可以重复的;

其中:key为字符串类型,元素member为字符串类型 ,分数score为double类型;

主要命令有:

写:zadd key score member
读:zrange key from to : 根据元素的位置获取多个元素
zrangebyscore key from to:在有序集合中获取给定分值范围的所有元素
删:zrem key member


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: