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
相关文章推荐
- redis 系列7 数据结构之跳跃表
- redis 系列5 数据结构之字典(上)
- redis 系列6 数据结构之字典(下)
- 转载和积累系列 - Redis内核之数据结构实现
- redis源码系列-数据结构(adlist/ziplist/dict)
- redis源码系列-数据结构(adlist/ziplist/dict)
- Redis系列(三)Redis数据结构
- redis 存储数据结构及持久化方式--rdb 、aof
- 使用stringRedisTemplate操作redis hash结构数据只能存储String类型的问题
- Redis 数据结构使用场景
- redis 数据结构
- 【Redis源码剖析】 - Redis内置数据结构之字符串sds
- Redis-数据结构(哈希hash)
- MySQL系列:innodb源码分析之基础数据结构
- 转:C#数据结构和算法学习系列九----String类和StringBuilder类
- C++程序员学Java系列之三十:数据结构之向量Vector
- Redis 数据结构使用场景
- Redis系列二:Redis支持的数据类型和使用方法(二)
- redis 存储数据结构
- Redis中数据结构