demo - meetbill/redis-orm GitHub Wiki

demo

创建记录

创建记录时内部变动涉及如下步骤

  • 添加 id 至 redisorm:{model}:all 集合
  • 设置 redisorm:{model}:object:{id} 为序列化后的数据
  • 添加所有 {field_name:field_value} 到 redisorm:{model}:object:{id}:tags 集合
  • 添加 id 到 redisorm:{model_name}:tags:{field_name:field_value} 用于标记索引

创建普通记录

操作

class User(redisorm.Model):
    pass

User.objects.create(name='wangbin', age=26)

内部变动

# 【表级别】记录表中所有记录
SADD redisorm:user:__all__ 39NzUg3sOmD7ZDe1

# 【记录】记录中的内容
SET redisorm:user:object:39NzUg3sOmD7ZDe1  (dp0S'age'p1I26sS'name'p2S'wangbin'p3s.

# 【记录】此记录的所有 tags
SADD redisorm:user:object:39NzUg3sOmD7ZDe1:tags age:26 name:wangbin

# 【表级别】表级别 tag
SADD redisorm:user:tags:age:26 39NzUg3sOmD7ZDe1
SADD redisorm:user:tags:name:wangbin 39NzUg3sOmD7ZDe1

创建带过期时间记录

操作

class User(redisorm.Model):
    pass

User.objects.create(name='meetbill_expire', age=26, expire=3)

内部变动

【表级别】
SADD redisorm:user:__all__ XAXir1gqH0pKg8Ne

【记录级别】
SET redisorm:user:object:XAXir1gqH0pKg8Ne (dp0S'age'p1I26sS'name'p2S'meetbill_expire'p3s.
SET redisorm:user:object:XAXir1gqH0pKg8Ne:expire 1584149251.246195

【表级别】
ZADD redisorm:user:__expire__ 1584149251.246195 XAXir1gqH0pKg8Ne
【记录级别】
SADD redisorm:user:object:XAXir1gqH0pKg8Ne:tags age:26 expire:3 name:meetbill_expire
【表级别】
SADD redisorm:user:tags:age:26 XAXir1gqH0pKg8Ne
SADD redisorm:user:tags:expire:3 XAXir1gqH0pKg8Ne
SADD redisorm:user:tags:name:meetbill_expire XAXir1gqH0pKg8Ne