spring boot + redis 使用步骤

一、xml文件中添加依赖

 <!--spring boot及其他依赖根据需要进行导入-->
<!--redis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

二、使用Java存储redis数据

创建redis操作对象

 @Autowired
    private RedisTemplate<Object,Object> redisTemplate;

string字符串类型

// 存储string字符串类型数据到Redis中
redisTemplate.opsForValue().set("name", "zhangsan"); // 存储string类型数据
// 从Redis中获取字符串类型数据
Object name = redisTemplate.opsForValue().get("name"); // 获取string类型数据
System.out.println(name);

// 使用boundValueOps()方法,存储字符串类型数据到Redis中
redisTemplate.boundValueOps("name").set("lisi");
// 使用boundValueOps()方法,从Redis中获取字符串类型数据
Object name1 = redisTemplate.boundValueOps("name").get();
System.out.println(name1);

hash类型

// 向Redis的Hash数据结构中存储键值对,键为"user",字段为"name",值为"xiaomi"
redisTemplate.opsForHash().put("user", "name", "xiaomi");
// 向Redis的Hash数据结构中存储键值对,键为"user",字段为"age",值为"10"
redisTemplate.opsForHash().put("user", "age", "10");
// 从Redis的Hash数据结构中获取"user"键中字段为"name"的值
Object name = redisTemplate.opsForHash().get("user", "name");
System.out.println(name);
// 从Redis的Hash数据结构中获取"user"键中多个字段的值,字段包括"name"和"age"
List<Object> objects = redisTemplate.opsForHash().multiGet("user", Arrays.asList("name", "age"));
objects.forEach(System.out::println);

list类型

// 使用leftPush()方法向Redis的List数据结构左侧插入元素,列表键为"mylist",值为"苹果"
redisTemplate.opsForList().leftPush("mylist", "苹果");
// 使用leftPush()方法向Redis的List数据结构左侧插入元素,列表键为"mylist",值为"安卓"
redisTemplate.opsForList().leftPush("mylist", "安卓");
// 使用rightPush()方法向Redis的List数据结构右侧插入元素,列表键为"mylist",值为"微软"
redisTemplate.opsForList().rightPush("mylist", "微软");
// 使用rightPush()方法向Redis的List数据结构右侧插入元素,列表键为"mylist",值为"ios"
redisTemplate.opsForList().rightPush("mylist", "ios");
// 使用range()方法从Redis的List数据结构中获取范围内的元素,列表键为"mylist",范围从0到-1表示获取全部元素
List<Object> mylist = redisTemplate.opsForList().range("mylist", 0, -1);
mylist.forEach(System.out::println);

set类型

// 使用add()方法向Redis的Set数据结构中添加元素,集合键为"myset",值为"悟空"、"八戒"、"悟净"、"唐僧"
redisTemplate.opsForSet().add("myset", "悟空", "八戒", "悟净", "唐僧");
// 使用members()方法从Redis的Set数据结构中获取所有成员,集合键为"myset"
Set<Object> myset = redisTemplate.opsForSet().members("myset");
myset.forEach(System.out::println);

zset类型

// 使用add()方法向Redis的ZSet有序集合中添加元素,集合键为"myzset",值为"西游记",分数为60
redisTemplate.opsForZSet().add("myzset", "西游记", 60);
// 使用add()方法向Redis的ZSet有序集合中添加元素,集合键为"myzset",值为"水浒传",分数为61
redisTemplate.opsForZSet().add("myzset", "水浒传", 61);
// 使用add()方法向Redis的ZSet有序集合中添加元素,集合键为"myzset",值为"三国演义",分数为59
redisTemplate.opsForZSet().add("myzset", "三国演义", 59);
// 使用add()方法向Redis的ZSet有序集合中添加元素,集合键为"myzset",值为"红楼梦",分数为51
redisTemplate.opsForZSet().add("myzset", "红楼梦", 51);
// 使用range()方法从Redis的ZSet有序集合中获取范围内的元素,集合键为"myzset",范围从0到-1表示获取全部元素
Set<Object> myzset = redisTemplate.opsForZSet().range("myzset", 0, -1);
myzset.forEach(System.out::println);

三、使用redis缓存实现查询数据从缓存中查询

/**
     * 使用redis查询用户年龄在23-28
     * @param min
     * @param max
     * @return
     */
    @Override
    public List<User> findByAge(int min, int max) {
        //先从缓存中读取数据
        String userList = redisTemplate.opsForValue().get("UserList");
        if (userList!=null){
            //是缓存中读取的数据
            System.out.println("是缓存中读取的数据");
            //转成json数据返回
            List<User> users = JSONObject.parseArray(userList, User.class);
            return users;
        }else {
            //缓存中没有
            System.out.println("数据库中查到的数据");
            List<User> userList1 = userMapper.findByAge(min,max);
            //装成json字符串存入redis
            userList = JSONObject.toJSONString(userList1);
            redisTemplate.opsForValue().set("UserList",userList);
            return userList1;
        }
    }
    /**
     * 修改方法
     * @param age
     */
    @Override
    public void updateByAge(int age) {
        userMapper.updateByAge(age);
        //缓存中删除数据
        Boolean userList = redisTemplate.delete("UserList");
    }

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值