专栏首页杂烩hadoop、hive、sqoop安装备忘 原

hadoop、hive、sqoop安装备忘 原

背景:

实际项目中,很多地方需要把数据缓存起来,以加快数据访问速度。比如字典表,比如数据机房表等等,缓存的实现有很多方式,如果项目中有用到mybatis,可以使用二级缓存来解决数据的缓存问题。

现状:

一般mybatis通过oscache来实现他的二级缓存,然而这种方式存在如下几个问题:

1、oscache可以用来缓存页面和数据对象,但数据通常存放在内存中,项目多实例环境下无法解决缓存更新和过期的问题。

2、oscache可以将数据通过io写到硬盘保持数据一致性,但此举会浪费资源

解决方案:

使用redis实现一套mybatis二级缓存插件,将数据从内存转移到redis中,各个项目访问唯一一个redis实例(或集群),这样就保证在任意时刻,缓存的变化都会被所有项目感知,并使用最新的缓存数据;同时,redis的高性能也保证了缓存数据的高速读取。

实现步骤:

目前mybatis社区开放了mybatis-redis项目,可以从中央仓库获取对应依赖。

pom.xml

<dependency>

<groupId>org.mybatis.caches</groupId>

<artifactId>mybatis-redis</artifactId>

<version>1.0.0-beta2</version>

</dependency>

<dependency>

<groupId>redis.clients</groupId>

<artifactId>jedis</artifactId>

<version>2.8.0</version>

</dependency>

src/redis.properties

blockWhenExhausted=true

evictionPolicyClassName=org.apache.commons.pool2.impl.DefaultEvictionPolicy

fairness=false

host=127.0.0.1

port=6379

jmxEnabled=true

jmxNameBase=pool

jmxNamePrefix=pool

lifo=true

maxIdle=8

maxTotal=8

maxWaitMillis=-1

minEvictableIdleTimeMillis=60000

minIdle=0

numTestsPerEvictionRun=-1

softMinEvictableIdleTimeMillis=1800000

testOnBorrow=false

testOnCreate=false

testOnReturn=false

testWhileIdle=true

timeBetweenEvictionRunMillis=3000

mapper配置

<mapper namespace="com.voole.p2pauth.system.mappper.IAccessLogMapper">

<cache type="org.mybatis.caches.redis.RedisCache"></cache>

    <insert id="insertAccessLog" flushCache="true"  parameterType="com.voole.p2pauth.system.entry.AccessLogEntry">

INSERT INTO l_access (

Id,……

)

VALUES

(

#{id},……

);

</insert>

</mapper> 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 分布式下mybatis二级缓存数据一致性解决办法

    实际项目中,很多地方需要把数据缓存起来,以加快数据访问速度。比如字典表,比如数据机房表等等,缓存的实现有很多方式,如果项目中有用到mybatis,可以使用二级缓...

    尚浩宇
  • Java-ThreadPoolExecutor类

            handler:提交线程数量大于maximumPoolSize时的处理器

    尚浩宇
  • Rancher2.1.4使用记录 原

        说实话,Rancher的官方文档真的很全,围绕着UI的方方面面都面面俱到。但看多了却发现,很多东西都浅尝辄止,尤其某个东西实在不懂的时候,看文档只能让自...

    尚浩宇
  • 分布式下mybatis二级缓存数据一致性解决办法

    实际项目中,很多地方需要把数据缓存起来,以加快数据访问速度。比如字典表,比如数据机房表等等,缓存的实现有很多方式,如果项目中有用到mybatis,可以使用二级缓...

    尚浩宇
  • 人人都能看懂的机器学习!3个案例详解聚类、回归、分类算法

    机器学习,一言以蔽之就是人类定义一定的计算机算法,让计算机根据输入的样本和一些人类的干预来总结和归纳其特征和特点,并用这些特征和特点和一定的学习目标形成映射关系...

    华章科技
  • 如何通过网站获取航班信息及价格?

    在我们平时有时候需要从一些网站获取一定的价格做参考。我们以空运报价网飞啊网来说,很多公司会通过此网站进行一些市场价格的参考,虽然有时候上网站查询也比较方便,但是...

    逍遥之
  • Redis-3. Redis高级命令

    ·主从复制不会阻塞master,在同步数据时,master可以继续处理client请求

    py3study
  • sentinel监控redis高可用集群(二)

    一、端口转发。 如果在一个主机里面,安装了两个redis实例,可以在项目里面配置IP端口,用iptables转发。 iptables -t nat -A PRE...

    一夕如环
  • 组和分组卷积

    考虑一个正方形。它是对称的吗?它是如何对称的?它有多少对称性?它有什么样的对称性?

    abtion
  • Golang安装和配置

    在Mac,Windows和Linux是那个平台上都支持Golang,您可以从 https://golang.org/dl/下载相应平台的二进制文件。该网站在国内...

    会呼吸的Coder

扫码关注云+社区

领取腾讯云代金券