首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏golang

    每日一库之 go-cache 单机缓存

    go-cache 是一个 golang 的缓存库, 用于缓存 k, v 对, 缓存时间过期后存储的值会失效, 底层是一个 map, 过期后内部 Item 是不会自动清除, 需要手动调用DeleteExpired time.Hour) Replace(key, value, duration) 方法 替换已存在项,否则报错 err := c.Replace("k", "new", 2* map, 键是 string, 值是 Item mu是互斥锁, 用于保护items的并发访问 onEvicted是删除缓存项时的回调函数, 当缓存项过期时, 会调用该函数 janitor是清理缓存项的定时器 c.mu.Unlock() } 设置写锁,防止多个 goroutine 同时修改一个 item, 然后设置过期时间 这就是 go-cache 库, 主要用于单机缓存,底层是一个 map, 使用RWMutex 锁控制读写和time.Now().Add(d).UnixNano()设置过期时间, 基于本地内存 , 如果需要分布式缓存, 可以考虑使用 redis 等其他缓存

    42811编辑于 2025-07-04
  • 来自专栏PM吃瓜(公众号)

    缓存技术 2

    这是直接读取数据库的数据 array(10) { [0] => array(12) { ["id"] => string(1) "1" ["catid"] => string(2) ["ord"] => string(1) "2" ["hits"] => string(1) "1" ["status"] => string(1) "1" } 第二次访问 array(10) { [0] => array(12) { ["id"] => string(1) "1" ["catid"] => string(2) "13 "] => string(1) "2" ["hits"] => string(1) "1" ["status"] => string(1) "1" } 说明:第一次运行时 ('静态规则', '有效期', '附加规则'), // 定义格式2 字符串方式 '静态地址' => '静态规则', ) 定义格式1采用数组方式 便于单独为某个静态规则设置不同的有效期,定义格式2

    93320发布于 2019-08-13
  • 来自专栏人人都是架构师

    Go每日一库之81:go-cache(单机缓存库)

    go-cache https://github.com/patrickmn/go-cache 一句话描述 基于内存的 K/V 存储/缓存 : (类似于Memcached),适用于单机应用程序 简介 go-cache 基于内存的 K/V 存储/缓存 : (类似于Memcached),适用于单机应用程序 ,支持删除,过期,默认Cache共享锁, 大量key的情况下会造成锁竞争严重 为什么选择go-cache? 可以存储任何对象(在给定的持续时间内或永久存储),并且可以由多个goroutine安全地使用缓存。 int64 // 过期时间:设置时间+缓存时长 } // Cache 整体缓存 type Cache struct { *cache } // cache 整体缓存 type cache struct } // janitor 定时清空缓存的结构 type janitor struct { Interval time.Duration // 多长时间扫描一次缓存 stop chan

    5.6K40编辑于 2023-09-30
  • 来自专栏高可用

    初探单机压测工具wrk2

    背景说明 在之前的文章CLB是怎么均衡client流量的-长连接篇中,实验使用的是pts这款压测工具,实际压测前,有调研wrk2这个优秀的单机压测工具,但场景方面不是很匹配,就没有采用。 2. 什么是wrk2 wrk2是一个主要基于wrk的HTTP基准测试工具,与 apache bench(以下简称 ab)类似,都是单机上的压测工具,其使用多线程设计来进行请求的生成。 wrk2安装 截止我写这篇文章,CentOS系的操作系统,还没有把wrk2加入默认的包管理系统,所以如果要使用它,我们需要编译安装,下面列出简要的步骤。 , 2m, 2h) 压测中常用的几个参数如下: -c 并发连接数 -d 压测时长 -R 模拟的qps -t 启用的线程数,根据设备CPU数量来 wrk2使用 我们用wrk来尝试完成上篇文章的任务,使用命令如下 wrk -t2 -c100 -d30s -R25000 http://10.0.100.38/ 输出结果如下,整体说明比较直观 图片 结论 从试用下来,发下wrk在单机压测时比较好使,但涉及到高并发模拟

    2.1K20编辑于 2023-10-15
  • 来自专栏JavaEdge

    大道缓存1 缓存特征2 缓存介质3 缓存分类和应用场景缓存实战

    2 Mtconfig实现图 这类缓存实现,优点是能直接在heap区内读写,最快也最方便;缺点同样是受heap区域影响,缓存的数据量非常有限,同时缓存时间受GC影响。 主要满足单机场景下的小数据量缓存需求,同时对缓存数据的变更无需太敏感感知,如上一般配置管理、基础静态数据等场景。 image 图4 缓存数据流转图(L1:本地内存层;L2:Terracotta服务节点层) Ehcache的配置使用如下: <ehcache> <! 简单,很小的jar包,简单配置就可直接使用,单机场景下无需过多的其他服务依赖。 支持多种的缓存策略,灵活。 域已发生更新,自动影响cache1、cache2、cache3等处的缓存数据。

    1K21发布于 2018-09-20
  • 来自专栏Linux-L2Fater-L2J

    解决天堂2单机JAVAL2J源码CMD后台乱码

    解决天堂2单机/JAVAL2J源码CMD后台乱码 前言:我们知道现在大部分L2J开源都是国外的,所以很多天堂2源码/开源项目组我们在使用的时候,会出现cmd乱码,以血玫瑰天堂2为例,如下图 图片 这种乱码 ,在天堂2服务端game文件夹目录下的log内查看是能看到中文的!

    1.4K30编辑于 2023-05-08
  • 来自专栏DannyHoo的专栏

    cell高度的缓存2——利用模型属性缓存

    article/details/53204196 之前的一篇文章(http://blog.csdn.net/u010105969/article/details/53203860)介绍了利用字典缓存 我们如果利用已有的模型进行cell高度的缓存会更简单些。 我们要利用的模型是与cell一一对应的模型。在该模型中增添一个cellHeight的属性用于记录cell的高度。

    63920发布于 2018-09-13
  • 来自专栏分享干货的你

    Springboot@value 动态刷新2 单机

    上一次有人说这个单机版还有一些问题, 问题一: 每一次都要自己写beanName , 但是ioc 容器那么多的bean 的名字, 我怎么记得住。

    1.3K20发布于 2021-04-23
  • 来自专栏用户7873631的专栏

    yii2缓存Cache

    LoginForm; class IndexController extends \yii\web\Controller { public function actionSite() { //设置缓存 /*Yii::$app->cache->set("name",666); //获取缓存 echo Yii::$app->cache->get("name");*/ //删除缓存 Yii ::$app->cache->delete("name"); //获取缓存 echo Yii::$app->cache->get("name"); } }

    72210编辑于 2022-03-25
  • 来自专栏Redis原理与应用

    Redis原理—2.单机数据库的实现

    4.Redis过期键的删除策略(1)三种不同的过期键删除策略(2)Redis采用的删除机制(3)Redis主从服务器对过期键的处理(4)Redis客户端如何获取数据库中键的变化(5)缓存满了和缓存被污染了 (5)缓存满了和缓存被污染了一.缓存满了缓存满了是指:Redis使用的内存空间超过了maxmemory的值。一般把缓存容量设置为总数据量的15%-30%,以兼顾访问性能和内存空间开销。 缓存被写满是不可避免的,Redis提供了8种缓存淘汰策略。其中allkeys指的是所有缓存数据,volatile指的是设置了过期时间的缓存数据。 缓存污染不严重时,只占少量的缓存空间,影响不大。缓存污染严重时,写入新缓存数据需要把污染数据淘汰掉,从而影响性能。如果能明确数据在某段时间会被再次访问,则volatile-ttl可有效避免缓存污染。 如果使用LRU淘汰策略时出现对大量数据进行一次全体读取且只读一次,那么也会产生缓存污染。(6)Redis的LRU实现原版的LRU需要使用链表管理所有的缓存数据,这会带来额外的空间开销。

    33700编辑于 2025-02-21
  • 来自专栏For XX - 专注于技术本身

    DockerRancher2搭建ElasticSearch7.x单机集群

    Docker/Rancher2搭建ElasticSearch7.x单机/集群 官方教程 https://www.elastic.co/guide/en/elasticsearch/reference ,主要是开启跨域访问和安全配置 xpack.security.enabled 单机版可以开启账号密码登录,不需要证书。 bootstrap.memory_lock=true 配置内存锁定 cluster.name 集群名称 node.name 节点名称 Rancher搭建单机版 按图配置即可 Rancher 搭建集群版 按图配置即可 节点2 节点3 建议打开使用主机网络,并且网络模式为HostPort 此配置为3个节点,互为主节点和数据节点,当其中一个节点挂掉,会自动选举新的主节点 和单机版类似,主要就是环境变量的区别,另外集群如果要开启密码登录,则必须开启证书,具体参照官网。

    63320编辑于 2022-09-21
  • 来自专栏时悦的学习笔记

    DB2 Linux平台安装 Part 2 单机版软件安装

    下载安装文件 我们把安装文件放在/software目录下 2. /db2prereqcheck -v 10.5.0.10 -i ? /db2_install -b /opt/ibm/db2/V10.5.10 -p SERVER -f NOTSAMP ? ? 5. 检查安装 cd /opt/ibm/db2/V10.5.10/install/ ./db2ls ? 6. /db2licm -a /tmp/db2aese_c.lic 至此DB2软件安装完成,下节是如何创建DB2实例

    1.8K41发布于 2020-08-18
  • 来自专栏架构师成长之路

    HTTP详解(2)-请求、响应、缓存

    使用这样的机制将提高网站的性能 例如: If-None-Match: "03f2b33c0bfcc1:0" Pragma: 作用: 防止页面被缓存, 在HTTP/1.1版本中,它和Cache-Control 所有内容都不会被缓存 2. 1xx:指示信息——表示请求已经接受,继续处理 2xx:成功——表示请求已经被成功接收、理解、接受。 浏览器缓存 浏览器缓存:包括页面html缓存和图片js,css等资源的缓存。如下图,浏览器缓存是基于把页面信息保存到用户本地电脑硬盘里。 2、关于图片,css,js,flash的缓存 这个主要通过服务器的配置来实现这个技术,如果使用apache服务器的话,可以使用mod_expires模块来实现: 编译mod_expires模块: Cd

    3K30编辑于 2022-04-15
  • 来自专栏修己xj

    使用 Docker Compose 部署单机版 Redis:简单高效的数据缓存与存储

    今天我们来介绍如何使用 docker-compose 部署单机版 Redis,这是一个简单高效的数据缓存与存储解决方案,广泛应用于Web应用、移动应用以及各类数据处理场景。 Redis(Remote Dictionary Server的缩写)是一个开源的内存数据存储系统,它可以用作数据库、缓存和消息中间件。 分布式:虽然本文介绍的是单机版 Redis,但 Redis 本身支持分布式部署,能够满足大规模应用的需求。 现在你已经成功地使用 Docker Compose 部署了单机版 Redis。你可以使用 Redis 的各种命令来进行数据的读写、存储、删除等操作。比如: 存储数据: set xj "修己!" Redis 作为一个简单高效的数据缓存与存储解决方案,适用于各种不同规模的应用场景。 希望本文对你理解并使用 Redis 与 Docker Compose 有所帮助。

    9.5K40编辑于 2023-08-25
  • 来自专栏PHP学习网

    Yii2开启Schema 缓存

    Schema缓存是一个比较特殊的缓存,只有当我们使用活动记录是这个缓存才会生效。 什么是活动记录 活动记录能智能检测数据库对象的集合(例如列名、列类型、约束)而不需要手动地描述它们。 通过启用 Schema 缓存,检索到的数据库对象的集合将被保存在缓存中并在将来的请求中重用。 Schema缓存开启的方法: 要开启Schema缓存,需要配置一个cache应用组件来储存Schema信息,并在配置中设置 yii\db\Connection::enableSchemaCache 为true 'cache' => [ 'class' => 'yii\caching\MemCache', //配置缓存组件,这里用了memcache ], 2、查询语句时若是使用了asArray(),schema缓存是无效的。

    66510编辑于 2022-08-03
  • 来自专栏For XX - 专注于技术本身

    TiDB单机、集群环境安装,单机急速体验

    TiDB分布式关系型数据库单机安装,急速体验,只适合测试环境 简介 TiDB 是 PingCAP 公司设计的开源分布式 HTAP (Hybrid Transactional and Analytical 官网:https://pingcap.com/docs-cn/ 单机环境安装 wget http://download.pingcap.org/tidb-latest-linux-amd64.tar.gz

    1.4K10编辑于 2022-06-09
  • 来自专栏trick时间

    单机事务(-)

    【给点个赞如果觉得有帮助,我会做的更好】 最近想梳理下基础知识,又回顾了下单机事务内容。大家可作为一个参考。 写-》读-》写-》写:事务单元1 读-》读-》写-》写:事务单元2/事务单元3 共享资源A 3.继续优化对存在共享同一资源的对列,引入读锁,读并行。 引入读锁,提高并发,合并读,但会阻塞写。 读-》写-》写:事务单元2/事务单元3 共享资源A 读 4.继续提高并发,因为之前读会阻塞写,那么引入写锁,读写并行。 写-》读-》写-》写:事务单元2/事务单元3 共享资源A 读 当需要写的时候会把读锁升级为写锁。 写-》写-》写:事务单元1 读 读-》写-》写:事务单元2/事务单元3 共享资源A 读 读 6.继续提高并发,写写并行 悲观锁和乐观锁的机制来提高写写并行。

    67340发布于 2020-02-21
  • 来自专栏品茗IT

    Spring整合Oauth2单机版认证授权详情

    Spring整合Oauth2单机版认证授权详情 一、概述 OAuth 2.0 规范定义了一个授权(delegation)协议,对于使用Web的应用程序和API在网络上传递授权决策非常有用。 provider.error.OAuth2AccessDeniedHandler; import org.springframework.security.oauth2.provider.token.TokenStore ; import org.springframework.security.oauth2.provider.request.DefaultOAuth2RequestFactory; import org.springframework.security.oauth2 五、SpringSecurity配置 5.1 SpringSecurity常规配置 SpringSecurity的配置在客户端和认证授权服务器中是必须的,这里是单机,它更是必须的。 code&client_id=MwonYjDKBuPtLLlK&redirect_uri=http://www.pomit.cn client_id是配置文件中写的,redirect_uri随意,因为单机版的只是测试接口

    1.9K20发布于 2019-09-12
  • 来自专栏java初学

    scrapy(2)——scrapy爬取新浪微博(单机版)

    2-1 新建一个名为Dmoz的package 第二步:通过cmd进入Dmoz的文件夹,并输入scrapy startproject tutorial指令创建scrapy项目,如图2-2所示: ? 图2-2 创建scrapy项目 在cmd中输入上述命令并回车之后,就会生成一个树状文件目录,在pycharm可以查看该文件目录,如图2-3所示: ? 图2-4 爬虫py文件的位置 dmoz_spider.py用于从网站上爬取我们需要的信息,它需要继承scrapy.Spider类,该py文件的代码中必须要包含以下内容,如表2-2所示: ? 图2-14 不能正确引入其他py文件中的class 在这里,虽然导入了正确的class,但是仍然报错,为解决这个问题,首先清除缓存,如图2-15所示: ? 图2-15 清除缓存 清除缓存之后如果仍然不能恢复,此时需要将整个爬虫文件设置为源目录,如图2-16所示: ?

    2.6K150发布于 2018-05-14
  • 来自专栏JAVA乐园

    Spring Cloud 2.x系列之eureka注册中心单机

    mvnrepository.com中央仓库spring-cloud-starter-eureka-server已经被标志为过期,推荐使用spring-cloud-starter-netflix-eureka-server 2、 EurekaServerApplication.class, args); } } 4、 启动程序,并验证启动成功 方式一: 方式二: 代码:https://gitee.com/hjj520/spring-cloud-2.

    34110编辑于 2022-06-30
领券