loading...

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

posted @ 2020-06-12 18:10  浮生若梦~  阅读(985)  评论(0编辑  收藏  举报