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 */
各类型的存储结构如下图所示:
相关推荐
2. **Redis数据类型及操作**:这是Redis的核心部分,包括五大数据类型: - **字符串(String)**:最基础的数据类型,支持设置、获取、增加、减少等操作。 - **哈希(Hash)**:用于存储键值对集合,适用于存储对象。 ...
哈希类型在存储复杂对象时非常有用,如用户信息或文章详情。 最后是**集合类型**(Set)。Set是无序且不重复的元素集合。我们可以使用`sadd`添加元素,`srem`移除元素,`smembers`获取所有成员,以及`sinter`、`...
在Redis中,哈希可以用于存储对象,如用户信息,其中每个字段对应对象的一个属性。例如,`HSET user:123 name "John" age 25`,`name`和`age`就是哈希的字段,分别存储了用户的姓名和年龄。 3. 列表(List) 列表允许...
哈希类型是字符串字段和字符串值之间的映射,所以它适合用于表示对象。 - hset命令用于设置哈希字段的字符串值。 - hget用于获取存储在哈希中的字段值。 - hmset和hmget分别用于一次性设置和获取多个字段值。 通过...
Redis是一个开源的使用ANSI C编写的高性能键值对数据库,通常被称为数据结构服务器。它被广泛用于构建高性能的web应用、缓存、消息队列等场景。PHPRedis是Redis的一个PHP扩展模块,提供了丰富的API接口用于与Redis...
C#操作Redis的5种基本类型汇总 以下是C#操作Redis的5种基本类型的知识点总结: 一、String类型 * 简介:String是Redis最基本的类型,可以理解成与Memcached一样的类型,一个key对应一个value。String类型是二进制...
### Redis十大类型知识点详解 #### 一、Redis字符串(String) **定义与特点:** - **定义:**Redis 字符串是最基本的数据类型,每个键值对中的值都是一个字符串。 - **特点:** - **二进制安全:**支持任意格式...
Redis 是一个高性能的键值存储系统,它支持多种数据类型,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)以及有序集合(Sorted Set)。这些数据类型的特性使得Redis成为处理各种数据结构的理想选择...
本文主要探讨Redis中的数据类型,包括String、List、Set和Sorted Set,并结合实际应用讲解它们的特点和使用方法。 1. String String是最基本的数据类型,可以存储任何类型的数据,如数字、字符串等。在Redis中,...
标题“redis字节码存压缩对象”涉及到的知识点主要包括 Redis 对象的存储方式以及压缩技术在 Redis 中的应用。下面将详细介绍这两个方面: 1. Redis 对象存储: - Redis 支持五种基本数据类型:字符串(String)、...
3. **值类型测试**: 测试代码可能会展示如何将不同类型的值存入Redis,并验证读取结果的正确性。例如,创建多个键值对,包括String类型、List类型、Set类型和SortedSet类型,然后读取并验证它们。 4. **性能优化**:...
hashes类型是一个键值对集合,它非常适合存储对象。hashes类型常用操作包括hset、hget、hincrby、hexists等,用于对hash中的字段进行赋值、获取、自增等操作。 2.3 lists类型及操作 lists是一个有序的字符串列表,...
2. **Redis数据类型操作**:C#中可以操作Redis的多种数据类型,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。例如,使用`StringSet`和`StringGet`方法操作字符串,`...
String是Redis中最基本的数据类型,可以包含任何数据,比如JPEG图片或者序列化的对象。它非常灵活,因为可以对数据进行增加、删除、计数等操作。String的常用命令包括get、set、incr、decr和mget等。 #### 应用场景...
### Redis支持的数据类型及相关命令详解 #### 一、Redis简介及数据类型概述 Redis是一种开源的、基于内存的键值存储系统,同时也被广泛视为一种数据结构服务器。它支持多种数据类型,包括字符串(Strings)、列表...
**Ruby-RedisObjects:直接将Redis类型映射成Ruby对象** Ruby-RedisObjects是一个非常实用的库,它允许开发者在Ruby应用程序中直接操作Redis数据结构,就像操作Ruby对象一样。这个框架是Ruby社区对ORM(对象关系...
Redis的数据类型包括字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets),这些数据结构提供了多样化的存储和操作方式。例如,字符串可以用来存储简单的键值对;哈希则适用于存储对象,...
而C++是一种静态类型的、编译式的、通用的、大小写敏感的、不仅支持过程化编程,也支持面向对象编程的程序设计语言。在C++中操作Redis,可以充分利用C++的灵活性和Redis的高效性,为应用程序提供强大的数据支持。 ...
1. **数据类型**:Redis的五大数据类型为字符串、哈希、列表、集合和有序集合,每种类型都有其特定的用途,如字符串适合存储简单的值,哈希用于存储对象,列表可以作为队列或栈,集合用于成员关系,有序集合则带有...