跳转到主要内容

使用redis + lru内存缓存实现的guillotina缓存

项目描述

https://travis-ci.org/guillotinaweb/guillotina_rediscache.svg?branch=master

guillotina_rediscache将redis集成到guillotina中,并增加了一个内存层缓存。

为了协调内存缓存的失效,guillotina_rediscache利用了redis提供的pub/sub功能。

配置

此处的app_settings

{
  "databases": {
    "db": {
      ...
      "cache_strategy": "redis"
      ...
    }
  },
  "redis": {
      'host': 'localhost',
      'port': 6379,
      'ttl': 3600,
      'memory_cache_size': 209715200,
      'pool': {
          'minsize': 5,
          'maxsize': 100
      }
  }
}

运行措施

使用guillotina运行命令

./bin/g run --script=measures/serialize.py -c measures/config.yaml

带分析

./bin/g run --script=measures/serialize.py -c measures/config.yaml --line-profiler --line-profiler-matcher="*serialize*"

2.1.3 (2019-06-18)

  • 限制版本为guillotina < 5 [vangheem]

2.1.2 (2019-06-12)

  • 使用过期参数设置redis缓存值在文件数据管理器中 [vangheem]

2.1.1 (2019-01-18)

  • 在应用失效时,确保不允许另一个开始事务与asyncio失效任务冲突 [vangheem]

  • 修复端点@redis-clear-cache [masipcat]

2.1.0 (2018-11-20)

  • 升级到Guillotina >= 4.3 [bloodbare]

2.0.4 (2018-10-06)

  • 如果没有配置,则不要失败内存缓存 [vangheem]

2.0.3 (2018-07-20)

  • 删除旧guillotina与py 3.7的兼容性 [bloodbare]

2.0.2 (2018-06-18)

  • 改进大小计算 [jordic]

2.0.1 (2018-06-15)

  • 将默认缓存大小更改为209715200 [vangheem]

2.0.0 (2018-06-15)

  • 基于内存大小而非键总数进行缓存[jordic]

1.3.4 (2018-04-03)

  • 修复固定装置[vangheem]

1.3.3 (2018-04-03)

  • 升级测试以兼容guillotina 3.0[vangheem]

1.3.2 (2018-03-26)

  • 使用提交后钩子来更新文件管理器实现的数据[vangheem]

1.3.1 (2018-03-19)

  • 修复redis文件管理器的完成方法[vangheem]

1.3.0 (2018-03-19)

  • 提供redis文件管理器[vangheem]

1.2.0 (2018-03-14)

  • 升级以兼容guillotina 2.4.x[vangheem]

1.1.6 (2018-03-01)

  • 处理取消任务初始化任务时的错误[vangheem]

1.1.5 (2018-03-01)

  • 处理取消任务时的错误[vangheem]

1.1.4 (2018-02-15)

  • 修复缓存统计端点[vangheem]

1.1.3 (2018-01-22)

  • 能够禁用与< cite >cluster_mode选项一起删除一组缓存键[vangheem]

1.1.2 (2018-01-17)

  • 修复当键长度为0时使用redis.delete的问题[vangheem]

1.1.1 (2018-01-17)

  • 将所有缓存删除合并到一个请求中[vangheem]

1.1.0 (2018-01-12)

  • 将缓存更新推送到redis订阅者。这应该会显著提高缓存命中率[vangheem]

1.0.14 (2018-01-10)

  • 只有在我们有要使无效化的键时才运行使无效化任务[vangheem]

1.0.13 (2017-12-15)

  • 提高请求性能[vangheem]

  • 更改我们使用redis池的方式,以便重用连接[vangheem]

1.0.12 (2017-11-30)

  • 缺少对self.get_redis的await语句[vangheem]

1.0.11 (2017-11-08)

  • 处理CancelledError[vangheem]

1.0.10 (2017-11-06)

  • 为guillotina 2.0.0升级[vangheem]

1.0.9 (2017-10-23)

  • 修复处理连接对象并将其释放回池的操作[vangheem]

1.0.8 (2017-10-23)

  • 修复池的使用[vangheem]

1.0.7 (2017-10-23)

  • 从load/dumps使用pickle而不是json,因为它要快得多[vangheem]

1.0.6 (2017-10-19)

  • 使用ujson[vangheem]

1.0.5 (2017-10-02)

  • 跟踪所有需要使无效化的键,并在异步任务中执行使无效化,以便请求可以更快地完成。[vangheem]

1.0.4 (2017-05-29)

  • 测试修复[vangheem]

1.0.3 (2017-05-26)

  • 修复删除未能正确使缓存无效[vangheem]

1.0.2 (2017-05-15)

  • 修复频道发布使无效化[vangheem]

1.0.1 (2017-05-15)

  • 修复释放[vangheem]

1.0.0 (2017-05-15)

  • 首次发布

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面