V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
huangz
V2EX  ›  Redis

赠送几本即将出版的《Redis 实战》

  •  
  •   huangz ·
    huangz1990 · 2015-10-13 14:04:44 +08:00 · 18914 次点击
    这是一个创建于 2120 天前的主题,其中的信息可能已经有所发展或是发生改变。

    《 Redis 实战》封面图

    最近,由我翻译的《 Redis 实战》一书(也即是《 Redis in Action 》一书的中文版)终于要在本月下旬正式出版了。

    因为我是译者,所以出版社到时候会给我一些样书。因为样书的数量比较多,我一个人看不过来,所以就打算拿出其中五本来送给 V2EX 的朋友们。(样书和普通书本的内容完全一样,只是出版社会给样书盖一个章,说明该书为样书。)

    以下是本次赠书活动的规则:

    • 想要赠书的朋友请回复本帖,介绍一下你或者你的公司是如何使用 Redis 的,用它来做些什么应用程序,等等。如果你只是对 Redis 感兴趣,但是还没有真正使用过 Redis ,那么可以回复说说你想要阅读这本《 Redis 实战》的原因。

    • 本次活动从今天开始,直到 2015 年 10 月 18 日(周日)早上 0 点截止。

    • 18 日早上,我将从本帖的所有回复中选出 5 个回复,并向这 5 个回复的作者每人赠送一本《 Redis 实战》。

    • 获奖者需要自己支付寄送书本产生的快递费用。快递服务使用顺丰标快,收费方式为货到付款,广东省内收费 18 元,国内沿海城市和主要城市收费 23 元。

    • 因为《 Redis 实战》目前还在工厂印刷中,所以本次活动赠送的样书还未寄送到我手上。出版社预计 18 日就会向我寄送样书,等我拿到样书之后就会第一时间将样书转寄给各位获奖者。预计各位获奖者将在本月下旬收到本次活动赠送的样书。

    • 本人保留此次活动的最终解释权。

    以上就是本次赠书活动的所有规则,欢迎想要赠书的朋友们踊跃参与本次活动。

    本次活动赠送的所有样书均由人民邮电出版社提供,特此感谢!

    想要了解关于《 Redis 实战》的更多信息,请访问《 Redis 实战》的读者支持网站: redisinaction.com

    第 1 条附言  ·  2015-10-13 14:41:09 +08:00
    关于获奖回复的挑选:

    挑选不是随机的,我将根据大家回复的详细程度和有趣程度来判断。

    描述越详细,用法越有趣,被选中的机会就越大。

    已经回复过的朋友也可以在之后再次回复,进行补充。

    谢谢大家的参与!

    :)
    第 2 条附言  ·  2015-10-18 10:20:51 +08:00

    以下是本次活动的获奖名单:

    • 47 楼的 @ynztyl10

    • 77 楼的 @lijinma

    • 166 楼的 @shellfly

    • 196 楼的 @carlosfu

    • 227 楼的 @rangercyh

    请以上 5 位获奖者将你们的地址、电话和姓名发送到我的邮箱 [email protected] ,等我拿到样书之后就会把书本快递给你们。

    请在发送邮件的时候注明你的 V2EX 账号,并在和我取得联系之后,在这个帖子里面再次进行回复,以便我确认发送邮件的人是否就是获奖者本人。

    没有被抽中的朋友也不用灰心,接下来我还会在微博上面进行一次随机的转发送书活动,有兴趣的朋友可以先关注我的微博,到时再试试运气。

    非常感谢大家对这个活动的支持!

    第 3 条附言  ·  2015-10-25 12:17:48 +08:00

    《 Redis 实战》已经正式开始销售,详情请访问 redisinaction.com 了解,谢谢支持!

    261 条回复    2016-08-08 15:03:16 +08:00
    1  2  3  
    saxon
        201
    saxon   2015-10-14 09:59:57 +08:00   ❤️ 1
    支持下!
    langzizx39
        202
    langzizx39   2015-10-14 10:01:14 +08:00
    用 redis 来做数据缓存,存的是一些“不那么重要”、“可小部分丢失”的数据。但由于业务上需要快速地读写这些数据,所以采用了 redis 。
    最近刚把版本升级到了 redis-cluster ,从以前在程序里“粗糙”地实现集群,到现在可以简单地交给 redis-cluster 实现,另外 hash slot 的概念也很有用,可以方便地添加节点。
    但问题是发现这个新事物还是有些坑的,所以还在研究学习中。
    dallaslu
        203
    dallaslu   2015-10-14 10:09:30 +08:00   ❤️ 2
    近期在做一个高并发场景的项目,每秒处理数万请求;所以呢,用 Redis 的首要目标是缓存数据库查询结果。

    某种数据的数据量和查询量都很大,数亿乃至数十亿条目,每秒数十万次查询;所以搭建了一套 6 节点的集群来处理。原来定的是用 512GB 内存的服务器,后来才知道内存大到一定程序性能未必跟得上来,又换用 64GB 的了,反正未来随时可以增加节点来扩展性能嘛。

    不过发现 Java 的 Redis API 还不够健全,同时某些方法在 Redis 集群里也支持的不好。取交并集、计数等都存在一些问题,为了处理其他几种小量数据,于是又建了一套 2 节点、主从结构的 Redis ,这次有必要的话可以用得上 512GB 的了。><

    系统中有一处涉及交易金额的计算,需要在集群环境中实现一个延时队列,以保证及时退还超时交易的冻结款。因 Web 服务节点众多,共享队列不好实现,所以这个担子自然就落在了 Redis 身上。通过有序集合,将 key 与时间 Redis ,另在 Web 节点上起线程执行解冻操作。后来发现几乎是某节点独立完成了所有的解冻操作,让人啧啧称奇;直到很久以后发现这台机器的 NTP 没有工作,系统时间快了几秒。

    冻结操作需要判断,以避免高并发下账户超额支出;因为一开始对 Redis 不太熟悉,考虑了用锁的方式。不过,乐观锁也不适合这种高并发的场合。后来索性通过程序,维护冻结款和余额等之间的变化关系,虚拟出一个可用金额的变量,它们之间实时的存在等式关系;然后用单一变量「可用金额」扣除价格是否为正数,来判断是否可以交易。整个过程使用 zincrebyfloat ,原子操作,妈妈再也不用担心高并发出错啦!

    其实用了 zincrebyfloat 之后呢,金额就变成了 100.049999000000099 这样,不过精度已经足够使用了。

    缓存中的数据也经常变化,所以隔上相当一段时间,肯定要清空一次数据。但是担心这么大的数据操作影响实时性能,只好用 zscan 慢慢的遍历数据,悄悄的判断,从后面抹了无用数据的脖子,把它们逐个干掉。

    但是在某些情况下,还是需要直接的清空数据。摸索之后发现逐个节点清空就可以做到,因为担心主从结构会导致问题,于是想办法来智能区分每节点是主还是从,后来一想反正在 master 上的修改会自动同步到 slave ,如果 slave 上发生问题就可以直接跳过的嘛,于是工作量上又节(neng)省(tou)了(lan)些(le)。
    Matrixbirds
        204
    Matrixbirds   2015-10-14 10:11:19 +08:00
    先路过滋辞一下。
    因为比较懒所以很依赖书,而不是自己去读别人成熟的开源项目
    更希望了解更多的应用场景 嘛 希望运气好抽到一本~
    顺便:作者翻译也不容易!希望能看到你更多的作品~
    huangz
        205
    huangz   2015-10-14 10:32:01 +08:00
    @sincc redisinaction.com 上面有给出目录,还有试读,方便参考。
    xiuc001
        206
    xiuc001   2015-10-14 10:37:18 +08:00
    恭喜撸主,能把我这种资深级潜水党给炸出来。。
    说实话我回复仅仅是为了能拿个小奖,拜读一下 redis 实战这本。。
    原本看看英文版那是最好不过了,无奈本人英语是体育老师教的(体育老师一直都是被黑的)。。
    所幸大神把这本书给翻译了,希望能够拜读一下此书。
    ----------------------------------------------我是分割线---------------------------------------------------
    我们公司用 Redis 来缓存 session ,解决应用的集群问题
    另外还缓存不经常更新的热门数据,比如商品报价单信息
    redis 就是一个非关系数据库,可以弥补关系型数据库的一些缺陷, redis 和关系型数据库配合使用,就像双剑合璧的杨过和小龙女,功力(吞吐量)大增
    ----------------------------------------------我是分割线---------------------------------------------------
    我只想要这本书。
    chanlion
        207
    chanlion   2015-10-14 10:47:06 +08:00
    这一周内见到两位译者在 V2EX 宣传自己的新作。我们公司是深圳中青宝,主要业务就是游戏开发和运营。使用 Redis 作为存储用户数据及游戏场景数据等,并辅以 Mysql 作为持久化存储工具;您可以访问我的网站: http://mrlong.sinaapp.com 了解更详细的使用场景。
    JaHIY
        208
    JaHIY   2015-10-14 10:48:36 +08:00
    redis 用得不多,一般用作可以定时销毁的 session ,例如数字验证码、手机验证码,超时就自动销毁。

    求书求书(
    zbing3
        209
    zbing3   2015-10-14 11:17:55 +08:00
    好吧 说一下我们操蛋的用法,由于没有推送 我们需要把设备信息存在 redis 里面进行,每次客户端轮训,然后我们判断设备再给内容。求书……
    qq625692420
        210
    qq625692420   2015-10-14 11:27:54 +08:00
    Redis 最近在学 感觉不错
    wuliao49
        211
    wuliao49   2015-10-14 11:47:41 +08:00
    MARK 下。楼主翻译完了,能不能客观评价下这本书到底怎么样
    konakona
        212
    konakona   2015-10-14 12:29:31 +08:00
    我想要从浅到深的了结 REDIS 可以为 PHP 做什么。
    knightlhs
        213
    knightlhs   2015-10-14 12:35:51 +08:00
    又有新书 来看看 凑个热闹
    Ansonluo
        214
    Ansonluo   2015-10-14 12:49:13 +08:00
    看到大家的回复,确实收获颇多。我之前用 redis 作为 session 和限制用户登录。后来一个视频直播项目,用 redis 临时存储用户评论,直播结束后存入 sql 数据库。还有利用 redis 作为数据库的二级缓存,减少 sql 数据库的连接次数!
    funky
        215
    funky   2015-10-14 12:57:35 +08:00   ❤️ 1
    留名,了解过 redis ,但是公司的项目暂时没用上,不期望得到赠书。正版出来买买买!
    8820670
        216
    8820670   2015-10-14 13:00:14 +08:00   ❤️ 1
    作为学生支持一下~
    qaq 没用过这种服务器的数据库 QAQ [好像是这样的。。。

    只用过 MYSQL 的只能默默看了~~

    支持翻译~~
    wdpscqq
        217
    wdpscqq   2015-10-14 13:25:15 +08:00
    公司准备下一步做 redis 的项目,目前还没有买过书,只是从网上找资料看 所以想入门一下
    podormeijia
        218
    podormeijia   2015-10-14 13:35:53 +08:00   ❤️ 1
    reply for fun
    334132462
        219
    334132462   2015-10-14 13:39:14 +08:00
    公司有个项目准备使用 redis 了 但是没有相关经验 所以想看看
    ophunter
        220
    ophunter   2015-10-14 13:52:18 +08:00   ❤️ 1
    伪全栈想要学学
    LS667
        221
    LS667   2015-10-14 14:00:38 +08:00   ❤️ 1
    我只是个凑热闹的
    hongcha
        222
    hongcha   2015-10-14 14:40:37 +08:00
    一方面目前公司把 redis 当作缓存使用,使用 string 的 key - value 存储
    另一方面把 redis 当作队列存储使用,使用 list 一边 push 一边 pop
    好想要这本书
    magensky
        223
    magensky   2015-10-14 14:43:23 +08:00
    Redis 最近在学,求书一本
    hantsy
        224
    hantsy   2015-10-14 14:49:00 +08:00
    1. Spring 下有一个 Spring Session 项目,用 Redis 实现 HTTP Session 接口,结合 Spring Security 可以实现 Session 可享,基于 Token 的身份验证,适合于 Web 程序和 RESTful API 。

    已经在多个项目中使用。

    2. 另外可以存放一此统计类的数据。
    3. 临时数据,如果验证码之类,自动过期。
    sincc
        225
    sincc   2015-10-14 15:26:50 +08:00
    我看到作者是 13 年写的,不知道现在内容是否合适,因为 redis 已经 3.0 了, cluster, sentinel 都日臻成熟。我们公司做物联网的,后端的所有数据库都是 redis 。在我们产品了的主要作用是:

    1. 存储用户数据,支持快速读写操作,具体的用户数据关联十分复杂, redis 在关联这块比较欠缺,也可能这是 redis 的设计初衷吧。

    2. 作为 memory cache ,手机验证码,找回密码之类的临时数据

    3. sentinel 支持服务器的 HA ,如果 master 宕机,会选举一个 slave 重新变成 master

    4. 利用 redis 的 dist lock ,分布式锁来支持分布式开发。

    5. 作为 backend ,结合 apscheduler 实现类似 cron 的功能。

    6. 其他

    总之我们对 redis 的需求挺大的,也希望能挖掘 redis 的潜能。
    zyx89513
        226
    zyx89513   2015-10-14 16:23:01 +08:00
    @huangz 能否告诉几个图书编辑的微博账号呢? O(∩_∩)O 谢谢
    rangercyh
        227
    rangercyh   2015-10-14 16:42:18 +08:00   ❤️ 2
    谢谢楼主,介绍一下我正在开发的游戏吧。

    我以前是做端游的,那个时候后台数据冷热是分离的,冷数据落地到 mysql 或者 oracle 之类的关系型数据库里,当服务器启动的时候从数据库里把冷数据做一定筛选加载进内存里,然后当玩家登录时玩家数据也被从数据库加载进内存。玩家数据的存储有两种方式,一种是按照一定时间间隔进行热数据落地,一种是一旦发生变化就落地。那个光辉岁月里,服务器启动的时候要加载很多公共数据,所以对于一个日活上万的服,注册比按 1 : 100 来算,如果数据处理写的不好,很可能服务器启动的时候要加载很大一片数据进内存,通常服务器启动要花上好几个小时,就好像开炮前要预热炮管一样。那个时候,每当设计到新的数据,都要考虑数据的落地时机和落地频率,还要考虑数据的访问频度和每次访问的数据大小,其实这些都是应该考虑的,不过在那个年代被放大了,其实数据的落地跟真正的游戏逻辑没有多大关系,在理想服务器下,有没有数据库,对游戏都没什么影响,只要服务器不关闭或者宕机就没有问题。

    然后我开始做手游了。

    第一次做手游,想脱离原来端游的做法,把自己在做端游时的不满和艳羡的技术都用起来,想走出一片广阔的天空。首先是服务端的语言,之前端游的时候服务器用的 c++和 lua 来写的,一个服务端的代码恨不得有好几十兆,当然不止是游戏逻辑的进程,还有别的进程,加在一起。既然做新游戏了,我自然想耍一耍新的东西,纠结了很久我还是放弃了早已熟悉的 c++和 lua 的架构,开始动手重写一个新的服务器,当时首先想到的是看看别人是怎么尝鲜的,于是在 github 上发现了网易的 pomelo ,由此接触了 nodejs ,当然还看过云风大大的 skynet ,但是我想走的更远,最后纠结了 1 个月是改造 pomelo 还是自己动手写,最后被朋友劝说,一步一步往上爬,才能在最高点乘着叶片往下飞,于是我动手从 0 开始写我的服务器了。花了将近一个月,不停的推翻重构,终于把服务器框架搭好了,那段时间睡觉都在思考服务器的架构,现在想想也是醉了,整体的架构非常精简,而且优美,至少当初我是这么认为了,主要的技术用到了 zmq ,其他的就是兼顾扩展性和灵活性,如果有想了解的朋友可以和我沟通。
    然后是发现手机平台由于没有 pc 平台那么强大,所以表现力有限,这不光精简了客户端,同时也减轻了服务端的逻辑,很多人直接用 http 这种短连接来做服务端,这在我做端游的时候是很难想象的,尤其是一些 mmo 的游戏,而端游时代几乎放眼望去 mmo 是最多的,手游有很多不需要这么强连接的游戏,所以短连接也是可以理解的。我先封装了 nodejs 的 tcp socket ,测试性能发现,单个 node 进程 2Wqps ,单包 10bytes 几乎毫无压力,先用了段时间,后来由于客户端的需求,我还是选了折中的协议 websocket ,虽然性能有所下降,但还可以接受。
    最后终于到数据库了,由于设计服务器进程的时候,我首先的想法就是不能像以前端游那样,由服务器进程来保存游戏状态,我一定要把状态放进数据库来维护,又不想牵扯冷热数据的问题,而且服务器语言用的是 nodejs ,所以我毫不犹豫的瞄向了 redis 这样的内存数据库,当然有人要争辩 redis 的真正作用,我并不是真的了解它,只是觉得它可爱,小巧,好用。我需要一个读写性能极高的数据库,又不想考虑冷热数据交互,还要求简单易用,当时考虑了 mongodb 跟 redis ,甚至还考察过 leveldb ,最后还是 redis 的简单让我选择了它,“古人”不是说过简单即是美吗,哈哈。基于我服务器的设计, redis 承载的不光是保存数据的任务,还需要参与到游戏逻辑中来,跟我在做端游时完全不同,端游时的数据库是和游戏逻辑分离的,只起到存储和恢复数据的作用,而现在 redis 的作用跟游戏逻辑耦合的更加紧密,如果从这个角度来看,似乎服务器更加复杂了,因为引入了另一个模块来操作游戏逻辑,数据和逻辑杂糅在一起了,但精心的设计和 redis 的简洁性让这件事情看起来没有那么复杂, redis 内建的结构也非常好用,我们用到了 set 、 string 、 hash ,使用了 expire 、 pub/sub 订阅、 key space notification 等等特性。现在我们的游戏逻辑和 redis 已经是水乳交融了,我自己也不知道怎么拆开了。囧。。。另一个需要考虑的问题,是数据的安全性,虽然这个问题不属于游戏逻辑的考虑范围,但本着做人要负责的态度,既然上了床,就要考虑生宝宝的问题。我详细思考和测试过 redis 的备份方案,无论 rdb 还是 aof ,无论是主从还是读写分离,都没有令我觉得完美,也许压根就不存在完美的备份方案,迄今我还在搜寻着,思考着。

    我的项目完成度已经接近 80%了,第一次内测可能也就在这一两个月了,花了一年的时间,中间折腾、纠结、痛苦、悲伤、忧郁、喜悦、兴奋过,一路走来,感慨万千。我的故事说完了,也许永远也说不完。写了这么多废话,主要是今天下午有点闲,然后看到帖子写着写着就废话多了,主要目的不是为了拿本书,不过如果寄给我也非常高兴,耽误大家时间了。
    hellomsg
        228
    hellomsg   2015-10-14 19:03:43 +08:00 via iPhone   ❤️ 1
    上市后一定拜读
    malingyi
        229
    malingyi   2015-10-14 19:15:28 +08:00
    1, 充当缓存服务
    2 ,充当消息中转站,大部分是 Log 消息,通过 pub / sub 的方式使用
    3 ,折腾过 3.x 的集群,由 Server 端负责 sharding
    4 ,充当 Global Session
    wangfeng3769
        230
    wangfeng3769   2015-10-14 19:17:05 +08:00 via Android
    django 一起使用
    wangleineo
        231
    wangleineo   2015-10-14 19:22:26 +08:00   ❤️ 1
    imyip
        232
    imyip   2015-10-14 19:25:21 +08:00   ❤️ 1
    说实话,我对 Redis 并不太了解,没有在实际环境上使用过,只是知道他缓存挺好用
    现在觉得自己只是太贫乏了,半桶水的 php 作为应届生找不到好的工作
    持续关注楼主的新书动态,上市的话告知一下
    Cfmlovers
        233
    Cfmlovers   2015-10-15 10:03:07 +08:00
    公司级别的云存储有很多,但是很多项目还是会去选择 redis 作为存储,从一个使用者的角度来看, redis 是方便部署与运维的,读写速度非常快,作为 local 存储是一个不错的选择
    我手里的这个项目是一个棋牌类的游戏,采用的是 redis+mysql 的存储方式,网上很人问,怎么样将 mysql 的数据迁移到 redis ,其实是一个误区,对个人的项目使用 redis 的定位一定要清楚,是缓存,还是存储。 redis 的数据结构基本上都有用到,持久化,主从同步,订阅功能, lua 脚本等等,也都在使用。
    最近做的一个比较有趣的事情是, redis 集群部署的虚拟机性能不够好,持久化的时候磁盘 IO 不给力,所以需要将 redis 集群迁移出来,因为是线上的服务,所以需要做到无缝迁移,参考官网给的教程,迁移过程中出现了一些官网没有提示的异常情况,比如 del-node 的节点重新启动之后又加入了集群等等,集群这块的去中心化的设计值得参考
    自己也一直在阅读 redis 的源码,也做过 redis 源码的剖析分享,随处可见为了内存优化做的设计,包括精巧的数据结构,哪怕是 key 的查询都会做到常量级的复杂度
    首先要做好定位,为什么要使用 redis ,在去了解了一些关于 redis 的基本功能和注意点之后在去使用他,总之, redis 是一个不错的开源存储产品。
    eXpansion
        234
    eXpansion   2015-10-15 10:49:17 +08:00
    Redis 最近在看,公司准备做几个互联网项目,需要云存储以及其他分布式缓存之类的,刚好想借楼主的书学习一下,多谢楼主
    hoperuin
        235
    hoperuin   2015-10-15 11:11:43 +08:00
    原书是 13 年出版的,这都 2 年了才翻译.........
    doushiyinweini
        236
    doushiyinweini   2015-10-15 15:08:07 +08:00
    看能抽到不
    huangz
        237
    huangz   2015-10-17 15:47:30 +08:00
    @finian 电子版也会有,但会比纸质版晚。
    huangz
        238
    huangz   2015-10-17 15:53:51 +08:00
    @Rsl 电子版会出的,不过因为版权的问题,会比纸书晚一些,需要等待一阵子。
    huangz
        239
    huangz   2015-10-18 00:55:27 +08:00
    活动截止时间已到,感谢大家对本活动的支持。

    今天之内将公布获奖者名单,敬请期待!
    huangz
        240
    huangz   2015-10-18 10:26:37 +08:00   ❤️ 1
    获奖者名单已经公布,感谢大家对本活动的支持!
    shellfly
        241
    shellfly   2015-10-18 10:44:55 +08:00
    @huangz 看到我的 ID 了 ^^
    huangz
        242
    huangz   2015-10-18 11:35:41 +08:00
    @shellfly 恭喜,感谢你的回复,内容很有趣。

    我已经收到你的邮件,并给你回复了,发邮件的是你吗?
    shellfly
        243
    shellfly   2015-10-18 12:54:57 +08:00
    @huangz 是的
    huangz
        244
    huangz   2015-10-18 13:10:25 +08:00
    @shellfly OK 。
    carlosfu
        245
    carlosfu   2015-10-18 15:01:22 +08:00
    @huangz 我收到你的回复了,希望你的书大卖。
    huangz
        246
    huangz   2015-10-18 15:04:07 +08:00
    @carlosfu 谢谢!
    rangercyh
        247
    rangercyh   2015-10-19 11:58:11 +08:00
    bingo 了!邮件已发,望回复,祝大卖 @huangz
    huangz
        248
    huangz   2015-10-19 12:36:04 +08:00
    @rangercyh 已回复你的邮件,谢谢!
    huangz
        249
    huangz   2015-10-19 12:40:33 +08:00
    @lijinma 你好,我收到了你一封邮件,并且已经回复了,是你本人吗?
    lijinma
        250
    lijinma   2015-10-19 14:17:00 +08:00
    @huangz 确认是本人,谢谢你。
    huangz
        251
    huangz   2015-10-19 17:01:24 +08:00
    @lijinma OK 。
    huangz
        252
    huangz   2015-10-20 13:46:40 +08:00
    @ynztyl10 hi ,在吗?你中奖了,请给我发邮件。
    ynztyl10
        253
    ynztyl10   2015-10-20 16:26:52 +08:00
    @huangz sorry ,刚看到,邮件已发,谢谢啦
    huangz
        254
    huangz   2015-10-20 19:57:44 +08:00
    @ynztyl10 没关系,已经给你回邮件了。
    ynztyl10
        255
    ynztyl10   2015-10-20 23:33:04 +08:00
    @huangz 感谢,邮件已收到
    ynztyl10
        256
    ynztyl10   2015-11-03 09:01:45 +08:00
    @huangz 十分感谢,书已收到,很赞
    huangz
        257
    huangz   2015-11-03 11:16:12 +08:00
    @ynztyl10 不客气,收到就好!
    boboweb
        258
    boboweb   2015-11-03 13:11:32 +08:00
    已购买,期待早日出电子版
    huangz
        259
    huangz   2015-11-03 14:41:51 +08:00
    @boboweb 谢谢支持!等电子版出了之后会第一时间发布消息的。
    markme
        260
    markme   2016-08-08 12:07:10 +08:00
    已经购买,快看了一半了,内容比较实用。
    huangz
        261
    huangz   2016-08-08 15:03:16 +08:00
    @markme 谢谢支持。
    1  2  3  
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2352 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:08 · PVG 21:08 · LAX 06:08 · JFK 09:08
    ♥ Do have faith in what you're doing.