Redis笔记

第四章 Redis

4.1 Redis环境搭建与测试

使用docker来安装redis,docker笔记链接: docker笔记.

  1. 从docker中安装redis

    sudo docker pull daocloud.io/library/redis:latest
    
  2. 启动redis

    sudo docker sun -d -p 6379:6379 --name myredis daocloud.io/library/redis
    
  3. 在宝塔中安装redis的管理工具

  4. 进入容器打开Redis测试连接性

    [root@bogon ~]# docker exec -it myredis /bin/sh
    /data # redis-cli -p 6379
    127.0.0.1:6379> ping
    PONG
    127.0.0.1:6379> 
    

    可以使用命令来测试了!

  5. redis命令:https://www.redis.net.cn/order/

4.2 Springboot整合redis
  1. 引入依赖:

    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis</artifactId>
     </dependency>
    
  2. 编写配置文件

    #redis配置
    spring.redis.host=localhost
    
  3. 使用RedisTemplate和StringRedisTemplate操作redis

        @Autowired
        RedisTemplate redisTemplate;
        @Autowired
        StringRedisTemplate stringRedisTemplate;
    

    RedisTemplate:操作的是对象

    StringRedisTemplate:操作的是字符串

    stringRedisTemplate.opsForValue()//操作字符串
    stringRedisTemplate.opsForList()//操作列表
    stringRedisTemplate.opsForHash()//操作hash
    //set(set集合),ZSet(有序集合)
    
  4. 序列化问题

    当使用RedisTemplate将用户数据保存进去时,会报错,原因是User类没有序列化,当序列化后,默认使用Jdk序列化,我们可以自己写一个配置类,实现RedisTemplate方法来制定json序列化

    package com.maoyan.springbootcache.config;
    
    import com.maoyan.springbootcache.pojo.User;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.redis.connection.RedisConnectionFactory;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
    
    import java.net.UnknownHostException;
    
    @Configuration
    public class MyRedisConfig {
    
        @Bean
        public RedisTemplate<Object, User> userRedisTemplate(
                RedisConnectionFactory redisConnectionFactory)
        throws UnknownHostException {
            RedisTemplate<Object,User> template = new RedisTemplate<Object, User>();
            template.setConnectionFactory(redisConnectionFactory);
            Jackson2JsonRedisSerializer<User> userJackson2JsonRedisSerializer =  new Jackson2JsonRedisSerializer<User>(User.class);
            template.setDefaultSerializer(userJackson2JsonRedisSerializer);
            return template;
        }
    }
    
    

    使用:

      @Autowired
        RedisTemplate<Object, User> userRedisTemplate;
        @Test
        void contextLoads() {
            //User user = userMapper.getUserById(1);
            User user = userService.getUser(1);
           // System.out.println(user);
            stringRedisTemplate.opsForValue().append("msg","worddd");
            userRedisTemplate.opsForValue().set("user01",user);
        }
    

    成功实现json序列化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值