首页 > 其他分享 >cachex elixir 强大的缓存框架

cachex elixir 强大的缓存框架

时间:2024-01-16 09:56:14浏览次数:33  
标签:do 缓存 end cache cachex key elixir

cachex 是一个强大的elixir cache 库,提供了事务,fallback,以及过期等基本能力

包含的特性

  • TTL
  • 最大大小限制
  • pre、post 执行hooks
  • 事务以及row 锁
  • 异步写操作
  • 分布式
  • 同步本地文件系统
  • streaming cache
  • 批量写
  • 用户命令调用
  • 统计信息

参考使用

  • 分布式模式
    对于测试需要配置sname 比如iex --sname a@localhost -S mix
 
defmodule CacheApp do
  def init do
    Cachex.start_link(:my_cache, [nodes: [:a@localhost,:b@localhost]])
  end
 
  def set(key, value) do
    Cachex.put(:my_cache, key, value)
  end
 
  def get(key) do
    Cachex.get(:my_cache, key)
  end
end

注意: 每个节点需要先进行init 操作,每个节点的cache 进程都需要启动

说明

elixir 周边的一些框架以及工具因为利用了erlang 天然的分布式特性,使用起来比较方便

参考资料

https://github.com/whitfin/cachex
https://hexdocs.pm/cachex/getting-started.html

标签:do,缓存,end,cache,cachex,key,elixir
From: https://www.cnblogs.com/rongfengliang/p/17966961

相关文章

  • 缓存击穿与缓存雪崩区别?
    缓存击穿缓存击穿是一种redis的常见问题,它指的是当缓存数据快过期时,由于没有足够的缓存时间来处理请求,导致系统会频繁地请求数据库,从而造成数据库压力增大。解决方法是设置热点数据永远不过期,并添加互斥锁,保证同一时刻只有一个线程可以访问数据库。另外,如果查询返回的数据为空,可......
  • net8 设置缓存
    1、项目用到依赖注入参考:https://www.cnblogs.com/handsomeziff/p/16390502.html2、新建ICaching接口usingMicrosoft.Extensions.Caching.Distributed;namespaceYYApi.Caches{///<summary>///缓存抽象接口,基于IDistributedCache封装///</summary>......
  • Redis 做缓存常见的几个问题总结
     1.数据一致性我们知道,Redis主要是用来做缓存使用,只要使用到缓存,无论是本地内存做缓存还是使用Redis做缓存,那么就会存在数据同步的问题。一般情况下,我们都是先读缓存数据,缓存数据有,则立即返回结果;如果没有数据,则从数据库读数据,并且把读到的数据同步到缓存里,提供下次读请......
  • 面试官:如何保证本地缓存的一致性?
    有人可能看到“本地缓存”这四个字就会觉得不屑,“哼,现在谁还用本地缓存?直接用分布式缓存不就完了嘛”。然而,这就像你有一辆超级豪华的房车一样,虽然它空间很大,设备很全,但你去市中心的时候,依然会开小轿车一样,为啥?好停车啊!所以,不同的缓存类型是有不同得使用场景的。并且,为了防止缓......
  • elixir before_compile && on_definition 简单使用
    elixir提供了一些方便的模块属性,可以让我们方便的进行elixir的扩展(尤其是进行元编程的时候)比如elixir_agent就使用到了before_compile以及on_definition,方便进行trace的处理on_definition的简单使用参考demo内容来自官方,可以实现输出函数的一些信息 defm......
  • 优化 Odoo 性能:方法级别缓存的魔力
    浅谈Odoo的 @ormcache 装饰器。1.缓存的背景在实际开发中,某些计算可能会消耗大量时间和资源。例如,在计算字段的值时,可能需要执行复杂的逻辑或查询大量数据。为了避免在相同参数下重复执行这些耗时的计算,我们可以使用缓存机制。2.使用@ormcache装饰器在Odoo中,@ormcache ......
  • Spring Boot整合Redis:实现高效缓存管理
    在现代的Web应用开发中,利用缓存来提升应用性能是一种常见的做法。Redis作为一个高性能的键值数据库,被广泛应用于缓存场景中。本文将详细介绍如何在Java中使用SpringBoot框架整合Redis,实现高效的缓存管理。什么是Redis?Redis是一个开源的内存数据结构存储系统,它支持多种类型的数据......
  • 安卓之缓存的应用场景以及各种技术优劣分析
    文章摘要        本文主要探讨了安卓开发中的缓存技术及其应用场景,通过分析几种常见的缓存技术,包括内存缓存、磁盘缓存和网络缓存,阐述了它们的优点和缺点。此外,本文还提供了相应的代码示例,以帮助读者更好地理解这些缓存技术的实现方式。一、引言        在当今的应......
  • 安卓之缓存的应用场景以及各种技术优劣分析
    ​文章摘要        本文主要探讨了安卓开发中的缓存技术及其应用场景,通过分析几种常见的缓存技术,包括内存缓存、磁盘缓存和网络缓存,阐述了它们的优点和缺点。此外,本文还提供了相应的代码示例,以帮助读者更好地理解这些缓存技术的实现方式。一、引言        在当......
  • 缓存之美——如何选择合适的本地缓存?
    1、简介小编最近在使用系统的时候,发现尽管应用已经使用了redis缓存提高查询效率,但是仍然有进一步优化的空间,于是想到了比分布式缓存性能更好的本地缓存,因此对领域内常用的本地缓存进行了一番调研,有早期的Guava缓存、在Guava上进一步传承的Caffine以及自称在Java中使用最广泛的EhC......