- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个新编写的系统(用 C++ 编写),我希望在其中完成大量日志记录,至少在系统证明可靠之前是这样。我打算将数据库消息存储到 PostgreSQL 服务器,但为了提高效率,我想先缓存在 Redis 中,然后我写入 Redis,然后如果消息超过一定大小,我将它们转储到持久数据库,稍后可以在其中导航。
我read about LRU caching redis的,它似乎很合适,但是LRU缓存似乎更倾向于读取数据而不是写入。换句话说,那里描述的场景听起来像是如果我想从持久数据库中读取一些东西,并且为了避免多次读取(访问)那个持久数据库,我取那个值并将它写入 redis 缓存并重复使用它.但我想做相反的事情。我的日志系统会将日志消息写入 Redis,然后我希望它们以预定义的模式“逐出”到 PostgreSQL。
有没有办法让我编写一个 Redis 插件来实现这一点?我似乎没有找到任何关于这方面的文献或例子。
PS:请随时提出更好的日志缓存机制。
最佳答案
如果想要写效率
,我推荐leveldb
或者rocksdb
,都是Log-Structured-Merge-数据库(LSM)
设计,具有出色的写入性能和良好的读取性能。
如果你想使用redis
和postgres
,我想你可以使用redis作为一个job-queue
。将您的 log-message
写入队列,并设置一些 worker
从队列中检索 log-message
并写入 postgres
。
在这种情况下,您可以考虑: Celery
或者自己用redis List
实现一个job-queue
:使用LPUSH
来存储log-message
和LPOP
检索log-message
,然后将它们写入postgres
。
关于c++ - 使用redis做日志缓存 : Is it possible to create an eviction policy that evicts to PostgreSQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51182939/
我有一个新编写的系统(用 C++ 编写),我希望在其中完成大量日志记录,至少在系统证明可靠之前是这样。我打算将数据库消息存储到 PostgreSQL 服务器,但为了提高效率,我想先缓存在 Redis
我可以从 pod 描述中看到我的 pod 由于内存压力而被“逐出”而“失败”。但是我如何使用 prometheus 警报规则或其他方式测试太多“失败并被驱逐”的 pod? 我安装了 Prometheu
我在这里有一张我的内存限制利用率图表。我知道不可驱逐不能收回,而可驱逐可以收回。鉴于我的不可驱逐使用超出了我的限制,但有足够的可回收内存。我只是得到平均值,这将是我的利用吗? 最佳答案 聚会有点晚了,
我正在尝试将 Sonar 与 Jenkins 集成。一切都已设置并成功运行。当我在 Jenkins 中构建项目时,它显示 ANALYSIS SUCCESSFUL 但构建失败并出现以下错误。 [INFO
我使用 Hibernate 4.1.7 和 EhCache 作为二级缓存。我正在实现一项休息服务,以根据需要清除 cahce(驱逐所有区域)。 下面是代码片段 org.hibernate.stat.S
有没有办法让 Hibernate 逐出一个实体及其所有急切或一对一的关联,而不必手动一一逐出关联? (并且无需在关联上设置cascade=“evict”)。 一旦持久层构建并运行,我通常会发现此类需求
我无法访问眼前的代码,所以我只是想知道是否有人可以帮助我解决 Session.Evict() 问题。 假设我有一个带有子地址集合的 Person 对象。我从 session 中填充 Person 对象
我是redis的新手,所以请多多包涵。比方说,我已经配置了一个 Redis 使其具有 50mb 的 maxmemory,并且我将驱逐策略设置为 allkeys-lru。然后我继续插入和查询数据。当进程
我有一组我需要运行的守护进程,一般来说,它们不会消耗太多内存或 CPU,我有它们的 limits至 cpu: 150m和 memory: 150m . 有时,它们会飙升至比这更高的水平,这似乎会导致驱
我是 hibernate 新手。我想知道我们是否有 session.evict() 的替代方案。我已经评论了该行,并且我的逻辑运行良好。 最佳答案 session.evict() 方法用于从与 ses
阅读JBossCache documentation , 有不同的驱逐政策 JBoss Cache also ships with RemoveOnEvictActionPolicy, which c
您好,我在执行方法时遇到清理缓存的问题。这是我的配置和缓存方法: @Configuration @EnableCaching @AutoConfigureAfter(value = {MetricsC
我有一个使用 session.save(object) 获得的持久性 hibernate 对象 从那以后我改变了它。 我想执行 session.evict(object) 以节省内存,因为我已完成对对
我正在迁移这样的应用程序: Vehicle v = null; using (ISession session = MyNHibernateSession()) { v = Vehicle.F
我无法弄清楚 removeAbandoned 和 eviction 之间的区别。我在某处读到 removeAbandoned 已被弃用,但官方文档 (http://commons.apache.org
使用 sbt 1.2.7 和 sbt-pgp插件,sbt 显示驱逐警告。 $ rm -rf target project/target && sbt ";clean;compile" [info] L
在我想持久化一个对象然后通过从数据库(而不是 session )获取它来证明它是持久化的测试中,我注意到以下之间没有区别: // save it session.Clear() // fetch it
hibernate 中的 session.clear 和 evict 方法有什么区别。两者都是从 session 中删除实例的分离对象。我应该何时在 hibernate 中使用 session.cle
我有一个k8s集群,在我们的集群中,我们不希望将Pod逐出,因为Pod逐出会对运行在其上的应用程序产生很多副作用。 为了防止容器逐出,我们将所有容器都配置为保证的QoS。我知道即使系统中有任何资源匮乏
如果Joss cache从节点中逐出一个对象,并且同一对象从另一个对象(例如objB)引用它。这种情况会导致任何问题吗? objB 可以对被逐出的对象进行操作吗? 提前致谢。 最佳答案 是的。 JBo
我是一名优秀的程序员,十分优秀!