024 引入Redis作为缓存

一 .概述

  在本节之中,我们引入Redis作为缓存的实现.



二 .环境的搭建

  首先我们引入redis的场景启动器.

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

然后我们查看自动配置类:

@Configuration
@ConditionalOnClass({ JedisConnection.class, RedisOperations.class, Jedis.class })
@EnableConfigurationProperties(RedisProperties.class)
public class RedisAutoConfiguration {

我们发现,redis的配置是存放在RedisProperties类之中,我们查看此类.

@ConfigurationProperties(prefix = "spring.redis")
public class RedisProperties {

    private int database = 0;

    private String url;

    private String host = "localhost";

    private String password;

我们现在知道,我们的配置都存放在spring.redis之中,那么我们就进行配置.

spring:  redis:
    host: 127.0.0.1
    port: 6379

下面我们进行测试: 

@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisTest {

    @Autowired
    private StringRedisTemplate redisTemplate;

    @Test
    public void test() {
        this.redisTemplate.opsForValue().set("name", "trek");
    }
}

我们打开我们的redis客户端进行查看,发现下面的结果:



三 .CacheManager的测试

@RestController
public class CacheController {

    @Resource
    private CacheService cacheService;

    @RequestMapping("/cat/{id}")
    public Cat cat(@PathVariable("id")Integer id) {
        return this.cacheService.getCatById(id);
    }
}
@Service
@Slf4j
public class CacheService {

    @Cacheable(cacheNames= {"cat"},key="#id")
    public Cat getCatById(Integer id) {
        log.info("通过{}查询Person",id);
        return Cat.builder().name("trek").age(12).id(id).build();
    }
}

我们现在访问url,看看redis之中是否已经有了数据.

我们发现数据已经存在了,但是存放的数据可能不是我们想要的结果.

下一节,我们就去实现我们的序列化的功能

原文地址:https://www.cnblogs.com/trekxu/p/9514536.html

时间: 2024-08-29 01:11:36

024 引入Redis作为缓存的相关文章

redis lru缓存清理算法详解和相关配置

首先,需要先配置redis的conf文件,涉及到lru相关的配置一共有三个分别是: maxmemory,设置redis用来存放数据的最大的内存大小,一旦超出这个内存大小之后,就会立即使用LRU算法清理掉部分数据 maxmemory-policy,可以设置内存达到最大闲置后,采取什么策略来处理 (1)noeviction: 如果内存使用达到了maxmemory,client还要继续写入数据,那么就直接报错给客户端 (2)allkeys-lru: 就是我们常说的LRU算法,移除掉最近最少使用的那些k

Spring AOP整合redis 实现缓存统一管理

项目使用redis作为缓存数据,但面临着问题,比如,项目A,项目B都用到redis,而且用的redis都是一套集群,这样会带来一些问题.问题:比如项目A的开发人员,要缓存一些热门数据,想到了redis,于是乎把数据放入到了redis,自定义一个缓存key:hot_data_key,数据格式是项目A自己的数据格式,项目B也遇到了同样的问题,也要缓存热门数据,也是hot_data_key,数据格式是项目B是自己的数据格式,由于用的都是同一套redis集群,这样key就是同一个key,有的数据格式适合

知乎技术分享:从单机到2000万QPS并发的Redis高性能缓存实践之路

本文来自知乎官方技术团队的"知乎技术专栏",感谢原作者陈鹏的无私分享. 1.引言 知乎存储平台团队基于开源Redis 组件打造的知乎 Redis 平台,经过不断的研发迭代,目前已经形成了一整套完整自动化运维服务体系,提供很多强大的功能.本文作者陈鹏是该系统的负责人,本次文章深入介绍了该系统的方方面面,值得互联网后端程序员仔细研究. (本文同步发布于:http://www.52im.net/thread-1968-1-1.html) 2.关于作者 陈鹏:现任知乎存储平台组 Redis 平

Django使用Redis进行缓存详细最全流程

背景和意义服务器数据非经常更新.若每次都从硬盘读取一次,浪费服务器资源.拖慢响应速度.而且数据更新频率较高,服务器负担比较大.若保存到数据库,还需要额外建立一张对应的表存储数据.在Django中建立表通常做法是建立一个模型.看似简单,问题调试麻烦.开发时长久.为了进行服务器的加速,使用Redis进行缓存. 配置步骤如下1,服务器端安装redis(1)在Windows安装redis,方便测试 Redis不支持Windows!在它官网写得很清楚.但是开发环境一般是Windows系统.为了方便开发和调

SpringBoot:redis分布式缓存

前言 应用系统需要通过Cache来缓存不经常改变得数据来提高系统性能和增加系统吞吐量,避免直接访问数据库等低速存储系统.缓存的数据通常存放在访问速度更快的内存里或者是低延迟存取的存储器,服务器上.应用系统缓存,通常有如下作用: 缓存web系统的输出,如伪静态页面. 缓存系统的不经常改变的业务数据,如用户权限,字典数据.配置信息等 大家都知道springBoot项目都是微服务部署,A服务和B服务分开部署,那么它们如何更新或者获取共有模块的缓存数据,或者给A服务做分布式集群负载,如何确保A服务的所有

Redis作为缓存:实战自我总结(转载)

转载:[http://www.tuicool.com/articles/zayY7v] redis缓存服务器笔记 redis是一个高性能的key-value存储系统,能够作为缓存框架和队列.但是由于他是一个内存系统,这些数据还是要存储到数据库中的. 作为缓存框架: create/updae/delete---同时存到redis和数据库 query--先从redis查,没有记录才从数据库查,并把从数据库查的结果也放一份到redis 作为缓存队列: 2.把对象Object存储到redis中,怎么存?

redis spring缓存配置

使用redis做缓存的思路是在spring的项目中配置拦截器,在service层做切面,在findXXX或者getXXX等方法上进行拦截判断是否缓存即可. 1.环境:spring 3.1.2 + spring data redis 1.0.0+ jedis 2.1.0 2.spring配置文件配置: <!-- jedis 配置 --> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConf

SpringAOP与Redis搭建缓存

SpringAOP与Redis搭建缓存 近期项目查询数据库太慢,持久层也没有开启二级缓存,现希望采用Redis作为缓存.为了不改写原来代码,在此采用AOP+Redis实现. 目前由于项目需要,只需要做查询部分: 数据查询时每次都需要从数据库查询数据,数据库压力很大,查询速度慢,因此设置缓存层,查询数据时先从redis中查询,如果查询不到,则到数据库中查询,然后将数据库中查询的数据放到redis中一份,下次查询时就能直接从redis中查到,不需要查询数据库了. redis作为缓存的优势: 1.内存

ehcache memcache redis 三大缓存男高音_转

ehcache memcache redis 三大缓存男高音 2013-01-16 15:43 10500人阅读 评论(2) 收藏 举报 最近项目组有用到这三个缓存,去各自的官方看了下,觉得还真的各有千秋!今天特意归纳下各个缓存的优缺点,仅供参考!  Ehcache 在java项目广泛的使用.它是一个开源的.设计于提高在数据从RDBMS中取出来的高花费.高延迟采取的一种缓存方案.正因为Ehcache具有健壮性(基于java开发).被认证(具有apache 2.0  license).充满特色(稍