redis优化查询的两种方式

前言

一般来说,查询成为很多应用对外的性能瓶颈,其主要原因在于一旦并发量上来了,应用后台和数据库或者其他的存储服务的IO交互次数增多了,而服务器的线程资源开销是有限的,如何减少IO次数,这是优化要考虑的一个重要问题

使用redis也是如此,试想某些功能的数据使用了缓存,大量的并发请求过来时,是否可以考虑将同类型的数据查询一次性的提交给redis得到查询结果而不是逐个通过get(key)的方式获取更好呢?

下面介绍两种在java中优化查询的方式

1、使用multiget批量查询多个key

新增工具类

@Component
public class RedisUtils {

    @Autowired
    private RedisTemplate redisTemplate;

    public <T> List<T> multiGet(String... keys){
        List<String> searchKeys = Arrays.asList(keys);
        return redisTemplate.opsForValue().multiGet(searchKeys);
    }

}

测试:

	@Autowired
    private RedisUtils redisUtils;

    @Test
    public void testMultiget() {
        Map<String,Object> keys = new HashMap<>();
        keys.put("name","张三");
        keys.put("ag

猜你喜欢

转载自blog.csdn.net/zhangcongyi420/article/details/111091343