Redis学习

最近在看一本Redis的书(李子骅. Redis入门指南(第2版),记录一个难以理解的地方

小白的博客是使用散列类型键存储文章对象的,其中time字段存储的就是文章的发布时间。现在我们知道ID为“2”、“6”、“12”和“26”的四篇文章的time字段的值分别为“1352619200”、“1352619600”、“1352620100”和“1352620000”(Unix时间)。如果要按照文章的发布时间递减排列结果应为“12”、“26”、“6”和“2”。为了获得这样的结果,需要使用SORT命令的另一个强大的参数:BY。 BY参数的语法为BY参考键。其中参考键可以是字符串类型键或者是散列类型键的某个字段(表示为键名->字段名)。如果提供了 BY 参数,SORT 命令将不再依据元素自身的值进行排序,而是对每个元素使用元素的值替换参考键中的第一个“”并获取其值,然后依据该值对元素排序。就像这样: redis> SORT tag:ruby:posts BY post:->time

说下我的理解,用集合存储tag:ruby:posts,他存储的是文章ID;用散列类型存储文章的ID和发布时间。

127.0.0.1:6379> smembers tag:ruby:posts
1) "2"
2) "6"
3) "12"
4) "26"

127.0.0.1:6379> hgetall post:2
1) "id"
2) "2"
3) "time"
4) "1352619200"

然后通过散列表中的time对集合进行排序。就得到了和书本上一致的结果了。

127.0.0.1:6379> sort tag:ruby:posts by post:*->time desc
1) "12"
2) "26"
3) "6"
4) "2"

推荐阅读更多精彩内容

  • 《Redis 入门指南》(第二版) 第一章 Redis 是什么 Redis (REmote Dictionary ...
    EdenPP阅读 66,415评论 3 10
  • 本文是Redis入门指南的阅读笔记,同事推荐的,通过本书了解到了很多Redis支持的数据结构、很多应用场景等。基本...
    javaadu阅读 1,248评论 0 17
  • Redis简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis ...
    drfung阅读 467评论 0 10
  • 概述 Redis是一个非关系型数据库,以键值对的方式来存储数据。数据通过存储在内存中来获得高的读写性能,同时也可以...
    胖头鱼战士阅读 147评论 0 1
  • 作业: 记录一段真实生活中人物的语言或者是两三个人物的对话。建议大家先录音,然后逐字打出来。 同事a:你什么时候有...
    树之阅读 21评论 3 1