`

redis对象类型

 
阅读更多

 

    redis对象类型

      redis并没有用我们先前提到的的主要数据结构:SDS,链表,字典,压缩列表,跳跃列表作为redis对象的直接实现.而是基于这些数据 结构创建一个对象系统.

      这个系统包括了字符串对象,哈希对象,列表对象,集合对象和有序集合对象.每种对象都至少用到了一个我们前面介绍的数据结构.

一.对象类型以及编码

     redis使用对象表示数据库中的键和值.每次新建一个键值对的时候,至少会创建两个对象,键对象和值对象.例如:set msg "hello".msg就是键对象,hello就是值对象.

    redis每一个对象都是由一个redisObject来表示.

    

typedef struct redisObject {
    unsigned type:4;//类型
    unsigned encoding:4;//编码
    unsigned lru:REDIS_LRU_BITS; 
    int refcount;/*引用计数*/
    void *ptr;
} robj;

 

     1.1 类型,编码格式以及它们的对应关系

    对象的类型分别对应字符串对象,哈希对象,列表对象,集合对象和有序集合对象

#define REDIS_STRING 0
#define REDIS_LIST 1
#define REDIS_SET 2
#define REDIS_ZSET 3
#define REDIS_HASH 4

   对象的编码分别对应之前介绍的八种基本类型

#define REDIS_ENCODING_RAW 0     /* Raw representation */
#define REDIS_ENCODING_INT 1     /* Encoded as integer */
#define REDIS_ENCODING_HT 2      /* Encoded as hash table */
#define REDIS_ENCODING_ZIPMAP 3  /* Encoded as zipmap */
#define REDIS_ENCODING_LINKEDLIST 4 /* Encoded as regular linked list */
#define REDIS_ENCODING_ZIPLIST 5 /* Encoded as ziplist */
#define REDIS_ENCODING_INTSET 6  /* Encoded as intset */
#define REDIS_ENCODING_SKIPLIST 7  /* Encoded as skiplist */

   各类型的存储结构如下图所示:

这里写图片描述

 

 

  • 大小: 108.6 KB
分享到:
评论

相关推荐

    Redis实战_Redis实战中文完整版_Redis快速入门_Redis数据类型及操作_Redis常用

    2. **Redis数据类型及操作**:这是Redis的核心部分,包括五大数据类型: - **字符串(String)**:最基础的数据类型,支持设置、获取、增加、减少等操作。 - **哈希(Hash)**:用于存储键值对集合,适用于存储对象。 ...

    Java操作Redis的多种数据类型

    哈希类型在存储复杂对象时非常有用,如用户信息或文章详情。 最后是**集合类型**(Set)。Set是无序且不重复的元素集合。我们可以使用`sadd`添加元素,`srem`移除元素,`smembers`获取所有成员,以及`sinter`、`...

    Redis数据类型

    在Redis中,哈希可以用于存储对象,如用户信息,其中每个字段对应对象的一个属性。例如,`HSET user:123 name "John" age 25`,`name`和`age`就是哈希的字段,分别存储了用户的姓名和年龄。 3. 列表(List) 列表允许...

    redis数据类型指令整理

    哈希类型是字符串字段和字符串值之间的映射,所以它适合用于表示对象。 - hset命令用于设置哈希字段的字符串值。 - hget用于获取存储在哈希中的字段值。 - hmset和hmget分别用于一次性设置和获取多个字段值。 通过...

    redis,phpredis中文手册

    Redis是一个开源的使用ANSI C编写的高性能键值对数据库,通常被称为数据结构服务器。它被广泛用于构建高性能的web应用、缓存、消息队列等场景。PHPRedis是Redis的一个PHP扩展模块,提供了丰富的API接口用于与Redis...

    c#操作Redis的5种基本类型汇总

    C#操作Redis的5种基本类型汇总 以下是C#操作Redis的5种基本类型的知识点总结: 一、String类型 * 简介:String是Redis最基本的类型,可以理解成与Memcached一样的类型,一个key对应一个value。String类型是二进制...

    Redis十大类型知识点PDF

    ### Redis十大类型知识点详解 #### 一、Redis字符串(String) **定义与特点:** - **定义:**Redis 字符串是最基本的数据类型,每个键值对中的值都是一个字符串。 - **特点:** - **二进制安全:**支持任意格式...

    Redis数据类型.docx

    Redis 是一个高性能的键值存储系统,它支持多种数据类型,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)以及有序集合(Sorted Set)。这些数据类型的特性使得Redis成为处理各种数据结构的理想选择...

    Redis数据类型归纳1

    本文主要探讨Redis中的数据类型,包括String、List、Set和Sorted Set,并结合实际应用讲解它们的特点和使用方法。 1. String String是最基本的数据类型,可以存储任何类型的数据,如数字、字符串等。在Redis中,...

    redis字节码存压缩对象

    标题“redis字节码存压缩对象”涉及到的知识点主要包括 Redis 对象的存储方式以及压缩技术在 Redis 中的应用。下面将详细介绍这两个方面: 1. Redis 对象存储: - Redis 支持五种基本数据类型:字符串(String)、...

    redis-2.1.0 和commons-pool-1.5.6 Java测试redis values 类型

    3. **值类型测试**: 测试代码可能会展示如何将不同类型的值存入Redis,并验证读取结果的正确性。例如,创建多个键值对,包括String类型、List类型、Set类型和SortedSet类型,然后读取并验证它们。 4. **性能优化**:...

    redis实战 红豆出品 兄弟连redis

    hashes类型是一个键值对集合,它非常适合存储对象。hashes类型常用操作包括hset、hget、hincrby、hexists等,用于对hash中的字段进行赋值、获取、自增等操作。 2.3 lists类型及操作 lists是一个有序的字符串列表,...

    redis五种数据类型的使用场景

    String是Redis中最基本的数据类型,可以包含任何数据,比如JPEG图片或者序列化的对象。它非常灵活,因为可以对数据进行增加、删除、计数等操作。String的常用命令包括get、set、incr、decr和mget等。 #### 应用场景...

    Redis支持的数据类型、相关命令和功能

    ### Redis支持的数据类型及相关命令详解 #### 一、Redis简介及数据类型概述 Redis是一种开源的、基于内存的键值存储系统,同时也被广泛视为一种数据结构服务器。它支持多种数据类型,包括字符串(Strings)、列表...

    c++ 操作redis数据库

    而C++是一种静态类型的、编译式的、通用的、大小写敏感的、不仅支持过程化编程,也支持面向对象编程的程序设计语言。在C++中操作Redis,可以充分利用C++的灵活性和Redis的高效性,为应用程序提供强大的数据支持。 ...

    Ruby-RedisObjects直接将Redis类型映射成Ruby对象

    **Ruby-RedisObjects:直接将Redis类型映射成Ruby对象** Ruby-RedisObjects是一个非常实用的库,它允许开发者在Ruby应用程序中直接操作Redis数据结构,就像操作Ruby对象一样。这个框架是Ruby社区对ORM(对象关系...

    Redis实战Redis实战

    首先,Redis的核心概念包括键(key)、值(value)以及数据类型。Redis支持字符串、哈希、列表、集合和有序集合等多种数据结构,每种都有其特定的应用场景。例如,字符串常用于存储简单数据,哈希可以存储对象,列表...

    Redis和RedisDesktop

    Redis的数据类型包括字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets),这些数据结构提供了多样化的存储和操作方式。例如,字符串可以用来存储简单的键值对;哈希则适用于存储对象,...

    Redis安装包和Redis jar包

    1. **数据类型**:Redis的五大数据类型为字符串、哈希、列表、集合和有序集合,每种类型都有其特定的用途,如字符串适合存储简单的值,哈希用于存储对象,列表可以作为队列或栈,集合用于成员关系,有序集合则带有...

Global site tag (gtag.js) - Google Analytics