码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Redis学习笔记-2.客户端的使用


    文章目录

      • 1. Jedis
        • 1.1 认识Jedis
        • 1.2 连接Jedis
        • 1.3 简单使用
        • 1.4 Jedis连接池使用
          • 与直连对比
          • 简单使用
          • 连接池配置
            • 1. 资源数控制
              • (1)适合的maxTotal
              • (2)适合的maxIdle 和minIdle
            • 2. 借还参数
            • 3. 常见问题
              • (1)超时连接
              • (2)资源耗尽
            • 4. 解决思路
            • 5. 常见问题案例演示
      • 2. lettuce
      • 3. redis -py(Pathon客户端)
        • 3.1 获取redis-py
    • 3.2 基本使用
      • 4. go语言客户端
        • 4.1 Redigo客户端选择
        • 3.2 连接
        • 3.3 基本使用

    1. Jedis

    1.1 认识Jedis

    在这里插入图片描述

    • **使用java操作redis的一个中间件,Redis 官方推荐的 java连接开发工具 **

    • Jedis是Redis官方推出的一款面向Java的客户端,提供了很多接口供Java语言调用。

    • 使用jedis对象,操作方法函数与redis的api完全一致

    <dependency>
    	<groupId>redis.clientsgroupId>
    	<artifactId>jedisartifactId>
    	<version>4.1.1version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
     public class TestPing {
         public static void main(String[] args) {
         	// 1、 new Jedis 对象即可
             Jedis jedis = new Jedis("127.0.0.1", 6379);
             // jedis 所有的命令就是我们之前学习的所有指令!所以之前的指令学习很重要
             String response = jedis.ping();
             System.out.println(response); // PONG
         }
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    1.2 连接Jedis

    在这里插入图片描述

    • 每次相当于一个TCP连接,线程是不安全的

    在这里插入图片描述

    1.3 简单使用

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1.4 Jedis连接池使用

    与直连对比

    在这里插入图片描述
    在这里插入图片描述

    • 不用每次进行TCP连接的三次握手,四次挥手

    在这里插入图片描述

    简单使用

    在这里插入图片描述
    在这里插入图片描述

    连接池配置

    1. 资源数控制

    在这里插入图片描述

    (1)适合的maxTotal

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    (2)适合的maxIdle 和minIdle

    在这里插入图片描述

    • 其实maxTotal属性所表示的最大连接数,只是给出了一个连接数量的上限,
    • 而maxIdle属性所代表的最大空闲的连接数,才真正是业务可用的最大连接数。
    • 如果maxTotal和maxIdle二者不相等,就会涉及到连接的销毁与创建操作,会产生一定的开销,所以建议设置maxIdle=maxTotal,尽可能的避免由于频繁地创建和销毁连接而造成连接池性能下降,使连接池能够达到最佳性能。
      在这里插入图片描述
    2. 借还参数

    在这里插入图片描述

    3. 常见问题
    (1)超时连接

    在这里插入图片描述

    • maxWaitMillis设置参数问题
    (2)资源耗尽

    在这里插入图片描述

    • maxIdle 和minIdle设置不相等的情况
    4. 解决思路

    在这里插入图片描述在这里插入图片描述

    5. 常见问题案例演示
    • 连接泄露-没有关闭连接
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    2. lettuce

    • 在 SpringBoot2.x 之后,原来使用的jedis 被替换为了 lettuce?

    • jedis : 采用的直连,多个线程操作的话,是不安全的,

      • 如果想要避免不安全的,使用 jedis pool 连接池! 更像 BIO(阻塞) 模式
    • lettuce : 采用netty,实例可以再多个线程中进行共享,不存在线程不安全的情况!

      • 可以减少线程数据了,更像 NIO 模式

    在这里插入图片描述

    3. redis -py(Pathon客户端)

    3.1 获取redis-py

    ##

    3.2 基本使用

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

    4. go语言客户端

    4.1 Redigo客户端选择

    在这里插入图片描述

    3.2 连接

    在这里插入图片描述

    3.3 基本使用

    在这里插入图片描述

  • 相关阅读:
    PhaGCN2:病毒聚类
    车载语音交互「停摆」
    编程基础-代码规范
    无公网IP如何将本地服务器端口应用发布到互联网外网访问?快解析内网穿透
    Mysql 、Redis 数据双写一致性 更新策略与应用
    anaconda安装及配置+pytorch安装与配置(自用笔记)
    【C++】多态
    大模型 Scaling Law 的本质是工业化思维,Token 工厂,Token 生意
    【C++11并发】thread 笔记
    scanf&malloc
  • 原文地址:https://blog.csdn.net/xingzhes_/article/details/125870191
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号