• Vincent
    2021-11-20
    以redis为基础,最大限度扩展cache的抽象,学习了

    作者回复: 是的,cache不只是redis

    
    1
  • Aaron
    2021-12-08
    SetObj方法的说明【GetObj 获取某个key对应的对象, 对象必须实现 https://pkg.go.dev/encoding#BinaryUnMarshaler】, 我并没有这样实现, 我直接以json.Marshal,转成字符串的形式进行存储。get的时候,再json.Unmarshal进行转换,转换成结构体。另外,我实现的时候,设置过期时间的时候, 0代表永久存储, 在V8(v8.11.4, GO是1.17) 的源码里也能看到说明。【Zero expiration means the key has no expiration time.】

    作者回复: json.Marshal 的方式也是可以的, 本质都是序列化和反序列化。

    
    
  • 牙小木
    2021-12-02
    层次描述清晰,感觉缺了点层次图。字不如图哦

    编辑回复: 哎是考虑到定义协议的时候容易乱,加了个图。还有哪里你觉得加个图更合适的吗?

    
    
  • qinsi
    2021-11-21
    看上去封装的redis服务只会返回go-redis实现的redis client,那么定义redis服务的接口似乎就不是很必要,因为不会再有其他的redis服务的实现了。文中使用redis服务是为了实现缓存服务,那么直接用go-redis实现就好了。

    作者回复: 是的,但是服务层毕竟封装了实例化的方法,这样至少把配置/日志的逻辑都封装了,还是有一定必要的。

    共 6 条评论
    
  • qiutian
    2022-09-17 来自浙江
    这篇感觉有点乱,一会是Redis的代码,一会又插入了Cache的代码,能看懂,但不是很清晰
    
    
  • Jussi Lee
    2022-06-28
    redis 关闭链接的相关逻辑,好像没有看到
    
    