redis数据类型简介


Redis 提供了键( Key )和键值(Value)的映射关系。Redis 的键值一共有5种数据结构如下:

  • String——字符串
  • Hash——哈希表
  • List——列表
  • Set——集合
  • Sorted Set——有序集合

本文只做了理解,具体操作可以去官网查看,如有不同则以官网为准;

中文官网链接:http://www.redis.cn/commands.html

补充一些小知识:

  • redis默认16个数据库,类似数组的下标,从0开始,默认使用零号数据库;  使用select+数据库编号命令切换数据库;比如切换到1 就是 select 1;
  • dbsize:查看当前数据库的key的数量;keys *:显示当前所有key;
  • flushdb:清空当前数据库,flushall:清空全部数据库;
  • 统一的密码管理,16个库都是使用同样的密码;
  • quit:退出连接;

1.String 字符串类型

string 是最简单的类型,一个 key 对应一个 value,其上支持的操作与 Memcached 的操作类似,但它的功能更丰富。 string 类型是二进制安全的。意思就是 redis 的 string 可以包含任何数据,比如 jpg 图片或者序列化的对象。

使用:get 、 set 、mset setrangeappend 等;

2.Hash (哈希)

Redis hash 指值本身又是一种键值对结构,是一个 string 类型的 field 和 value 的映射表.它的添加、删除操作都是 O(1)(平均)。 hash 特别适合用于存储对象。相较于将对象的每个字段存成单个 string 类型。将一个对象存



储在 hash 类型中会占用更少的内存,并且可以更方便的存取整个对象。




redis查询存入的数据库 redis 查看数据库列表_Redis


 


3.List


是一个链表结构,主要功能是 push、pop、获取一个范围的所有值等等,操作中 key 理解为链表的名字,Redis 的 list 类型其实就是一个每个子元素都是 string 类型的双向链表。

redis查询存入的数据库 redis 查看数据库列表_redis查询存入的数据库_02

4.Set集合

集合类型也是用来保存多个字符串的元素,但和列表不同的是集合中: 

1.不允许有重复的元素,

2.集合中的元素是无序的,不能通过索引下标获取元素,

3.支持集合间的操作,可以取多个集合取交集、并集、差集。和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作,操作中 key 理解为集合的名字。 Redis 的 set 是 string 类型的无序集合。set 元素最大可以包含(2 的 32 次方)个元素。

redis查询存入的数据库 redis 查看数据库列表_Redis_03


5.Sorted Set  有序集合

有序集合和集合有着必然的联系,保留了集合不能有重复成员的特性,区别是,有序集合中的元素是可以排序的,它给每个元素设置一个分数,作为排序的依据。sorted set 是 set 的一个升级版本,它在 set 的基础上增加了一个顺序属性,这一属性在添加


修改元素的时候可以指定,每次指定后, zset 会自动重新按新的值调整顺序。可以理解为有 两列的 mysql 表,一列存 value ,一列存顺序。操作中 key 理解为 zset 的名字。 和 set 一样 sorted set 也是 string 类型元素的集合,不同的是每个元素都会关联一个 double 类型的 score 。


redis查询存入的数据库 redis 查看数据库列表_redis_04