前言 最近在做一个项目,某个接口查询数据到返回数据总计需要7000+毫秒,一直在考虑优化的问题,优化也有原来的一家一家查询到一次查询所有的,在查询不同天数.结果是1500+,虽然优化了不少,但是数据结构会变化,前台渲染数据会更加麻烦,暂时也没有更新.所以后来就采用了缓存的机制,查询的数据缓存10小时,虽然第一次查询比较慢,但是以后会好很多. 正文 1. 关于选型:redis or ehcache 在使用缓存的时候,第一反应是:redis,但是后来还是决定使用Ehcache,ehcache主要是用…
mongodb和memcached不是一个范畴内的东西.mongodb是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据.mongodb和memcached不存在谁替换谁的问题. 和memcached更为接近的是redis.它们都是内存型数据库,数据保存在内存中,通过tcp直接存取,优势是速度快,并发高,缺点是数据类型有限,查询功能不强,一般用作缓存.在我们团队的项目中,一开始用的是memcached,后来用redis替代. 相比memcached: 1.redis具有持久化机…
1. 使用Redis 在使用redis之前,首先要保证安装或有redis的服务器,接下就是引入redis依赖. pom.xml文件如下 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 由于在SpringBoot中默认提供了一套配置,…
最近工作没有那么忙,有时间来写写东西.今年的系统分析师报名已经开始了,面对历年的真题,真的难以入笔,所以突然对未来充满了担忧,还是得抓紧时间学习技术. 同事推了一篇软文,看到了这个Ehcache,感觉简单又好用,所以在自己这边也做个记录. 先来谈谈什么是Ehcache缓存,我们从实际场景出发,支撑一个系统最直接的东西就是数据库,针对数据库我们最常用的操作就是查询.反复的查询数据库会导致数据库压力变大,传统的数据库查询效率就不高(网络.sql语句复杂),导致查询体验不好.尤其当我们查询的语句还是类…
1.在实现缓存排序功能之前,必须先明白这一功能的合理性.不妨思考一下,既然可以在数据库中排序,为什么还要把排序功能放在缓存中实现呢?这里简单总结了两个原因:首先,排序会增加数据库的负载,难以支撑高并发的应用:其次,在缓存中排序不会遇到表锁定的问题.Redis恰好提供了排序功能,使我们可以方便地实现缓存排序. 2. 应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql.3. 在redis启动时去mysql读取所有表键值存入redis中,往redis写数据时,对redis主键自增…
问题分析 问题一:要求日志最好入库:但是,直接入库mysql确实扛不住,批量入库没有问题,done.[批量入库和直接入库性能差异] 问题二:批量入库就需要有高并发的消息队列,决定采用redis list 仿真实现,而且方便回滚. 问题三:日志量毕竟大,保存最近30条足矣,决定用php写个离线统计和清理脚本. 一.设计数据库表和存储 考虑到log系统对数据库的性能更多一些,稳定性和安全性没有那么高,存储引擎自然是只支持select insert 没有索引的archive.如果确实有update需求…
前言 之前我们使用过RedisTemplate来实现redis缓存,然后使用工具类来实现操作redis的存储.这样的方式好处是很自由,但是还不是最简单的处理方式.对于一些简单的应用来说,其实redis的缓存应用很简单,只需要存储和取出就可以了. 于是Spring提供了@Cacheable注解来实现,非常easy 操作步骤 1.启动类上需要加@EnableCaching注解 2.在需要执行缓存的类上面写上缓存前缀名称 @CacheConfig(cacheNames="user") 3.在…
基于Redis封装一个简单的Python缓存模块 0. Docker Redis安装 参考: Get Docker CE for CentOS Docker 安装 Redis 安装Docker时错误sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo 因为配置没改,当时只改了yum的设置,再改次yum-config-manager的 vim /usr/bin/y…
简单的redis缓存操作(get.put) 本文介绍简单的redis缓存操作,包括引入jedisjar包.配置redis.RedisDao需要的一些工具.向redis中放数据(put).从redis中取数据(get).访问redis时的逻辑 一.引入jedis jar包 <!-- java访问redis的jar包jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>…
apache shiro框架简介 Apache Shiro是一个强大而灵活的开源安全框架,它能够干净利落地处理身份认证,授权,企业会话管理和加密.现在,使用Apache Shiro的人越来越多,因为它相当简单,相比比Spring Security,Shiro可能没有Spring Security那么多强大的功能,但是在实际工作时可能并不需要那么复杂的东西,所以使用简单的Shiro就足够了. 以下是你可以用 Apache Shiro所做的事情: Shiro的4大核心部分——身份验证,授权,会话管理…