SpringBoot整合Redis

最近换了工作,新的公司中用到SpringBoot和Redis,之前也有零散的看过SpringBoot和Redis相关的知识,现在有时间打算自己整合一下这两个,后面有时间还会继续整合ActiveMQ。

既然打算整合SpringBoot和Redis,首先对SpringBoot和Redis做一个简单介绍。

SpringBoot:不是什么新技术,为了简化Spring配置,而提供的新的框架,为了快速搭建Spring的开发环境,可以纯Java开发没有XML,并且内置了Tomcat无需部署。
Redis:一个非关系型数据库,提供快速读写,主要用于缓存,降低数据库的读写压力,快速响应。

1.reids的安装

$ wget http://download.redis.io/releases/redis-5.0.0.tar.gz
$ tar xzf redis-5.0.0.tar.gz
$ cd redis-5.0.0
$ make

进入到解压后的 src 目录,通过如下命令启动Redis:

cd src

启动服务端

nohup ./redis-server &  //后台方式启动日志写在nohup

启动客户段

./redis-cli

客户端连接测试输入ping,显示pong 则连接正常如下图

   ping

在这里插入图片描述

几个常用redis命令:

  keys  *    //查询当前库的所有的key值
  del key   //删除key-value
  set key value  //设置key-value
  get key //获取key对应的value
  flushdb  //删除当前库的值

2. 代码

githug地址:https://github.com/441630179/SpringBootRedis.git

3. 代码运行

a)运行SpringApplication
b)浏览器中输入http://localhost:8081/SpringBoot/setValue?key=sex&value=boy
![在这里插入图片描述](https://img-blog.csdnimg.cn/2018110612422479.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xhb3RhbnN1b2NhaQ==,size_16,color_FFFFFF,t_70)

c)查看redis中的结果

![在这里插入图片描述](https://img-blog.csdnimg.cn/20181106124425191.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xhb3RhbnN1b2NhaQ==,size_16,color_FFFFFF,t_70)

4. 代码编写中遇到的坑

1)编写RedisConfig 类是注解写错@Configuration 没有注意写成了@Configurable导致加载不到类,启动tomcat报错
2)redis存入的值是key和value"\xac\xed\x00\x05t\x00\x03mmm" 显示问题,但是读取没有问题,最后网上查询是由于SpringBoot默认使用JDK的序列化,所以会这样,使用以下方法可正常显示。

/**
     * 设置数据存入 redis 的序列化方式
     * 默认使用JDK的序列化,显示16进制
     *
     * @param redisTemplate
     * @param factory
     */
    private void initDomainRedisTemplate(RedisTemplate<String, Object> redisTemplate, RedisConnectionFactory factory) {
        RedisSerializer stringSerializer = new StringRedisSerializer();
        redisTemplate.setKeySerializer(stringSerializer);
        redisTemplate.setHashKeySerializer(stringSerializer);
        redisTemplate.setHashValueSerializer(stringSerializer);
        redisTemplate.setValueSerializer(stringSerializer);
        redisTemplate.setConnectionFactory(factory);
    }
    @Bean
    public RedisTemplate<String, Object> functionDomainRedisTemplate() {
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        initDomainRedisTemplate(redisTemplate, redisConnectionFactory);
        return redisTemplate;
    }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值