首页 > 数据库 >Redis(持续更新)

Redis(持续更新)

时间:2024-03-16 19:31:08浏览次数:26  
标签:name redis void 持续 更新 jedis jedisPoolConfig Redis 连接池

1、安装

安装太麻烦了直接使用宝塔的一键部署

密码是bt_redis

2、jedis

1、引入依赖

<dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>3.7.0</version>
        </dependency>

 2、建立连接

private Jedis jedis;
    @BeforeEach
    void setUp(){
        //1建立连接
        jedis=new Jedis("IP",37690);
        //2设置密码
        jedis.auth("bt_redis");
        //3选择库
        jedis.select(0);
    }

3、测试String

@Test
    void testString() {
        //存入结果
        String result = jedis.set("name", "高晗");
        System.out.println(result);
        //获取数据
        String name = jedis.get("name");
        System.out.println(name);
    }

    @Test
    void testHash() {

        //插入哈希
        jedis.hset("user:1","name","Jack");
        jedis.hset("user:1","age","21");
        //获取
        Map<String, String> stringStringMap = jedis.hgetAll("user:1");
        System.out.println(stringStringMap);
    }

4、释放资源

//释放连接
    void tearDown(){
        if (jedis!=null)
            jedis.close();
    }

多线程时使用连接池

1、创建连接池工具

public class jedisConnectionFactory {
    private static  JedisPool jedispool;

    static {
        //配置连接池
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(8);//最大连接数
        jedisPoolConfig.setMaxIdle(8);//最大空闲连接
        jedisPoolConfig.setMinIdle(0);//最小空闲连接
        jedisPoolConfig.setMaxWaitMillis(100);//等待时间
        //创建连接池对象
        JedisPool jedisPool = new JedisPool(
                jedisPoolConfig,
                "IP",
                37690,
                1000,
                "bt_redis");


    }
    public static Jedis getJedis(){
        return jedispool.getResource();
    }

}

 修改建立连接代码

@BeforeEach
    void setUp(){
        //1建立连接
        jedis= jedisConnectionFactory.getJedis();//从池子中获取连接
        //2设置密码
        jedis.auth("bt_redis");
        //3选择库
        jedis.select(0);
    }

释放资源时底层会自动判断是否使用连接池,如果使用则归还连接池 

3、SpringDataRedis

RedisTemplate入门

依赖与springboot整合

 <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>
<!--        底层都通过commons完成底层线程池-->
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

配置

spring:
  data:
    redis:
      host: IP
      port: 37690
      password: bt_redis
      lettuce:
        pool:
          max-active: 8
          max-idle: 8
          min-idle: 0
          max-wait: 100

3注入RedisTemplate并使用

@Autowired
    private RedisTemplate redisTemplate;

    @Test
    void testString() {
        //底层自动序列化 所以object类型
        //写入一条数据
        redisTemplate.opsForValue().set("name","姜赫");
        Object name = redisTemplate.opsForValue().get("name");
        System.out.println(name);
    }

使用上述创建时,传入的是object而不是string所以会进行序列化所以当去底层使用原本object的文本时,会得到不同与String内容,可读性差(key,value)都序列化 序列化后增加了长度增加了内存容量的所以要改变序列化方式。 

RedisSerializer

标签:name,redis,void,持续,更新,jedis,jedisPoolConfig,Redis,连接池
From: https://blog.csdn.net/PHPneweer/article/details/136748378

相关文章

  • FFmpeg开发笔记(五)更新MSYS的密钥环
    ​ 《FFmpeg开发实战:从零基础到短视频上线》一书提到:使用MSYS对FFmpeg进行交叉编译时,需要事先安装交叉编译工具链,也就是执行下面命令。pacman-Smingw-w64-x86_64-toolchain一般情况可以正常安装交叉编译工具链,不过有时会提示错误“signaturefrom"DavidMacek<david.mace......
  • 0基础学《算法竞赛入门经典》持续更新
    前言3月10号开始准备蓝桥杯,4月13号比赛,仅有C语言语法基础。在此分享学习记录,于君共勉之。第二弹:0基础学《算法竞赛入门经典》第二版,作者:刘汝佳。已看完语法部分,3月15号开始,持续更新本书代码、晦涩知识点等的讲解,敬请期待,欢迎交流。第1部分语言篇第1章程序设计入门......
  • 【课设】/【毕设】ESP32上传温湿度至新版Onenet云平台并由新版Onenet云平台下发命令控
    一、uniapp设计  1、APP生成token秘钥:  1.1.下载HBuider软件:     直接搜索HBuider,进入官网下载软件:  2.新建项目-选择默认模版3.打开index.vue4.点击运行至内置浏览器;2.1获取Onenet云平台API接口 2.1.1进入Onenet云平台点击服务与支持-文档......
  • 查找redis永不过期的key
    keys*阻塞进程,消耗比较大,慎用#!/bin/bashhost=127.0.0.1port=6379output_file="never_expire_keys.txt"#获取所有键到keys.txt文件中redis-cli-h$host-p$portkeys"*">keys.txt#逐行读取keys.txt文件,查询每个键的TTLwhileIFS=read-rmykey;doresu......
  • docker-compose部署redis,flask
    第一步:新建flask项目app.pyvimapp.py#书写以下内容fromflaskimportFlaskfromredisimportRedisimportosapp=Flask(__name__)redis=Redis(host='redis',port=6379)@app.route('/')defhello():redis.incr('hits')return......
  • Spring-Boot整合Redis
    Spring-boot整合Redis导入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>配置redis在application.yml下增加redis的相关配置sprin......
  • redis cluster 迁移
    一、redis迁移概述。生产环境Redis当前部署环境为六台16核126G服务器,服务器资源整体配置较高,使用率较低(具体使用率参见表一)。为了更好地提升资源使用率,优化成本,故对rediscluster集群做迁移和合并。Rediscluster集群的迁移步骤为:首先安装redis集群,再次迁移redis数据,最后做业务切......
  • 数据量大的时候,要使用 redis 而不用 mysql
    Redis和MySQL都是广泛使用的数据库,但它们适用于不同的场景和需求。MySQL是一个关系型数据库,它适用于存储大量的结构化数据,并且提供复杂的数据查询和事务处理能力。它适合于需要进行深度数据分析和复杂joins的场景。Redis是一个内存中的数据结构存储系统,通常用作数据库、缓......
  • 嵌入式驱动学习目录索引(更新中)
    前言  这是一篇索引博客,用来作为索引记录学习嵌入式Linux的过程,可以用来给自己以及需要的读者作为一个目录索引,每次更新完博客都会添加进该目录中。  嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程,未来预计四个月将高强度更新本专栏,喜欢的可以关注本博主并订......
  • helm 安装redis的主从、哨兵
    helm安装redis的主从、哨兵主要的配置还是得看helmvalues中的注释说明安装库$helmrepoaddbitnamihttps://charts.bitnami.com/bitnami#查询redis资源$helmrepoupdate$helmsearchreporedis#把redis拉到本地$helmpullbitnami/redis--version16.11.2......