zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    十六、JSONObject与JSONArray使用-不刷新页面做回写显示
    十二、js去掉空格_比较字符长度_中英文判断_页面初始化_简体字与繁字体判断
    十、页面加载时对复选框、下拉列表、单选框默认进行选中及提交请求时判断单选按钮是否选中
    一、什么是Velocity及简单示例
    十八、oracle查看、扩展表空间及linux服务器硬盘容量大小查看
    接口限流算法
    浅析负载均衡的6种算法,Ngnix的5种算法
    今天是JAVA诞生日
    浅谈Spring中JDK动态代理与CGLIB动态代理
    Docker基本命令汇总
  • 原文地址:https://www.cnblogs.com/lin127/p/13102292.html
Copyright © 2011-2022 走看看