zoukankan      html  css  js  c++  java
  • redis学习

    一.什么是Redis

    Redis是一个非关系型数据库,具有很高的存取性能,一般用作缓存数据库,减少正常存储数据库的压力。

    Redis可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)。

    二.RedisTemplate及其相关方法

    1.RedisTemplate

    Spring封装了RedisTemplate对象来进行对Redis的各种操作,它支持所有的Redis原生的api。RedisTemplate位于spring-data-redis包下。RedisTemplate提供了redis各种操作、异常处理及序列化,支持发布订阅,并对spring 3.1 cache进行了实现。RedisTemplate提供了redis各种操作、异常处理及序列化,支持发布订阅,并对spring 3.1 cache进行了实现。RedisTemplate提供了redis各种操作、异常处理及序列化,支持发布订阅,并对spring 3.1 cache进行了实现。RedisTemplate提供了redis各种操作、异常处理及序列化,支持发布订阅,并对spring 3.1 cache进行了实现。

    注意 RedisTemplate是一个key和value都是泛型的模板类,一般情况下key为String类型,如:RedisTemplate<String,Object>。

    2.RedisTemplate中定义了对5种数据结构操作

    redisTemplate.opsForValue();//操作字符串
    redisTemplate.opsForHash();//操作hash
    redisTemplate.opsForList();//操作list
    redisTemplate.opsForSet();//操作set
    redisTemplate.opsForZSet();//操作有序set

    opsForXXX和boundXXXOps的区别?

    XXX为value的类型,前者获取一个operator,但是没有指定操作的对象(key),可以在一个连接(事务)内操作多个key以及对应的value;后者获取了一个指定操作对象(key)的operator,在一个连接(事务)内只能操作这个key对应的value。

    关于计数的API(increment)有一个bug,需要各位使用中注意,通过increment计数以后,通过get方式获取计数值的时候可能会抛出EOF异常(和本地的jdk以及redis的编译版本有关),可以考虑使用boundValueOps(key).get(0,-1)获取计数值。

        StringRedisTemplate是RedisTemplate的一个实例

    二.redis使用实列

    1.springBoot项目添加依赖

    <!--redis依赖-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    <!-- jeids -->
    <dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.1.0</version>
    </dependency>

    2.application.yml中添加配置
    spring:
    redis:
    host: 127.0.0.1
    port: 6379
    timeout: 10s
    jedis:
    pool:
    max-active: 10
    min-idle: 5
    max-idle: 10
    max-wait: 20s
    cache:
    type: redis #缓存类型
    cache-names: redisCache #缓存名字

    server:
    port: 8080


    logging:
    level:
    root: DEBUG #自定义注解,开启所有注解
    org.springframework: DEBUG #开启spring注解
    org.mybatis: DEBUG #开启mybatis注解

    3.简单的使用例子
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    //操作redis
    stringRedisTemplate.opsForValue().set("str1","zhang");
    stringRedisTemplate.boundValueOps("str2").set("1");
    stringRedisTemplate.boundValueOps("str2").increment(2); //加2
    String s1 = stringRedisTemplate.opsForValue().get("str1");   //zhangpeng
    String s2 = stringRedisTemplate.opsForValue().get("str2") //3





  • 相关阅读:
    MySQL-安装mysql8
    MySQL-Prometheus
    MySQL-sysbench
    MySQL-客户端登录问题
    学习进度第十六周
    学习进度第十五周
    寻找最长单词链
    用户体验评价
    学习进度第十四周
    找水王问题
  • 原文地址:https://www.cnblogs.com/zhangpeng8888/p/10618448.html
Copyright © 2011-2022 走看看