• SpringBoot 使用redis


    1.本地安装redis

    • 首先给本机电脑下载一个redis,下载地址:
    https://github.com/tporadowski/redis/releases。
    
    • 将下载的压缩包解压到文件夹,打开文件夹目录如下

    2.设置redis密码

    • 直接启动redis-server.exe,会发现redis报警告未指定默认配置文件

    • 这个时候我们先把redis退出来然后在redis安装目录打开cmd窗口运行redis-server.exe redis.windows.conf指令

    • 运行完之后我们再看启动的redis已经不报警告了,说明redis.windows.conf配置文件已经启用

    • 但是我们每次打开都要先打开cmd窗口再执行redis-server.exe redis.windows.conf指令太过麻烦在。所以,我们可以在redis安装目录下,创建一个txt文件后,
      打开并输入刚才的redis-server.exe redis.windows.conf命令,关闭,将文件改为bat即可,以后开启服务直接双击这个批处理文件即可,这样就会redis服务就会调用自己设置的配置了

    • 接下来我们来设置redis密码,我们指定了redis.windows.conf文件作为配置文件,就在该文件里找到requirepass字段修改方式:requirepass 你的密码

    • 设置完密码直接启动redis.bat文件,redis的密码就设置好了

    3.pom文件引入redis依赖

    <!--配置Jedis连接器-->
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.9.3</version>
    </dependency>
    <!--redis依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    

    4.JedisPool连接池链接redis

    • 为什么要引入JedisPool?

      • 首先我们如果每次使用缓存都生成一个Jedis对象的话,这样意味着会建立很多socket连接,造成系统资源被不可控调用,甚至会导致奇怪错误的发生。

    如果使用单例模式,在线程安全模式下适应不了高并发的需求,非线程安全模式又可能会出现与时间相关的错误。因此,为了避免这些问题,引入了池的概念JedisPool。

    JedissPool是一个线程安全的网络连接池,我们可以通过JedisPool创建和管理Jedis实例,这样可以有效的解决以上问题以实现系统的高性能。

    • RedisUtil工具类
    import com.example.backstage.util.ValidatorUtil;
    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
    import redis.clients.jedis.JedisPoolConfig;
    
    import java.util.List;
    import java.util.Map;
    
    public class RedisUtil {
    
        private static JedisPool pool = null;
    
        /**
         * 获取jedis连接池
         */
        public static JedisPool getPool(){
            if(pool == null){
                //创建jedis连接池配置
                JedisPoolConfig config = new JedisPoolConfig();
                //最大连接数
                config.setMaxTotal(100);
                //最大空闲连接-
                config.setMaxIdle(5);
                //创建redis连接池
                pool = new JedisPool(config, "127.0.0.1",
                        6379, 5000, "******");
            }
            return pool;
        }
         /**
         * 获取给定 key 的值
         * @param key
         * @return
         */
        public static String get(String key){
            Jedis jedis = getPool().getResource();
            String result = jedis.get(key);
            jedis.close();
            return result;
        }
    
         /**
         * 设置给定 key 的值
         * @param key
         * @param value
         * @return
         */
        public static String set(String key,String value){
            Jedis jedis = getPool().getResource();
            String result = jedis.set(key,value);
            jedis.close();
            return result;
        }
    }
    
    • 测试一下set get

    运行结果:

    redis连接成功!

    1.设置密码:打开redis-cli.exe运行命令 config set requirepass kaige123

    2.查询密码:config get requirepass

    3.验证:auth kaige123

    4.再次查询密码:config get requirepass

  • 相关阅读:
    第12周作业
    一张表格秒懂MES制造执行系统与ERP的区别关系
    spring boot:用dynamic-datasource-spring-boot-starter配置druid多数据源(spring boot 2.3.3)
    spring boot:使mybatis访问多个druid数据源(spring boot 2.3.2)
    linux(centos8):安装分布式事务服务seata(file单机模式,seata 1.3.0/centos 8.2)
    spring boot:单文件上传/多文件上传/表单中多个文件域上传(spring boot 2.3.2)
    spring boot: 用thymeleaf嵌套循环展示多层数据(spring boot 2.3.2)
    cmd 命令设置环境变量
    AtCoder Grand Contest 047
    AtCoder Grand Contest 032
  • 原文地址:https://www.cnblogs.com/lin127/p/13102292.html
Copyright © 2020-2023  润新知