Redis系列(一):数据结构

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
对于整数和浮点数还可以值自增、自减操作

Redis系列(一):数据结构_第1张图片

2.2 Hash

Hash是一个key-value对的集合,可存储 2321 键值对(40多亿);
其中:key是字符串类型,value是一个个的key-value对;
主要操作命令有:

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

示例:
Redis系列(一):数据结构_第2张图片

2.3 List

List可以理解为简单的字符串链表结构,最多可存储 2321 元素 (40多亿);
其中:key为字符串类型,value为字符串链表;
主要命令有:

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

Redis系列(一):数据结构_第3张图片

2.4 Set

Set是字符串的无序集合结构,最多可存储 2321 个元素 (40多亿),由于Set通过哈希表实现的,因此添加,删除,查找的复杂度都是O(1);
其中:key为字符串类型,value为不可重复的字符串集合;
主要命令有:

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

Redis系列(一):数据结构_第4张图片

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系列(一):数据结构_第5张图片

你可能感兴趣的:(Redis)