IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Jedis基本使用教程 -> 正文阅读

[大数据]Jedis基本使用教程

1 Redis基本数据类型:

	String  字符串
	List  列表
	Hash  散列
	Set  集合
	Sorted Set  有序集合

2 Jedis 介绍

jedis的2种使用方式:
  1. 通过单一连接方式使用,每次创建都会建立TCP连接,可适用于应用场景不太复杂的;

  2. 通过JedisPool连接池使用,连接池初始化后,每次连接从连接池中取,使用完放回,不用每次都新建TCP连接,开销较小,适用于较为复杂的使用场景,需要配置一些连接池参数。

3 项目中使用

3.1 引入依赖

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

3.2 单一连接使用

Jedis jedis = new Jedis(ip,port,timeout);

3.3 JedisPool 连接池


public  class RedisUtil {
    private static Logger logger = Logger.getLogger(RedisUtil.class);
    private static String ADDR = "xx.xx.xx.xx";
    private static int PORT = 6379;
    private static int MAX_TOTAL = 8;
    private static int MIN_IDLE=0;
    private static int MAX_IDLE = 1000;
    private static int MAX_WAIT = -1;
    private static int TIMEOUT = 10000;
    private static boolean BLOCK_WHEN_EXHAUSTED = true;
    private static String EVICTION_POLICY_CLASSNAME="org.apache.commons.pool2.impl.DefaultEvictionPolicy";
    private static boolean JMX_ENABLED=true;
    private static String JMX_NAME_PREFIX="pool";
    private static boolean LIFO=true;
    private static long MIN_EVICTABLE_IDLE_TIME_MILLIS=1800000L;
    private static long SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS=1800000L;
    private static int NUM_TESTS_PER_EVICYION_RUN=3;
    private static boolean TEST_ON_BORROW = false;
    private static boolean TEST_WHILEIDLE=false;
    private static long TIME_BERWEEN_EVICTION_RUNS_MILLIS=-1;
    private static JedisPool jedisPool = null;
    /**
     * 初始化Redis连接池
     */
    static {
        try {
            JedisPoolConfig config = new JedisPoolConfig();
            config.setBlockWhenExhausted(BLOCK_WHEN_EXHAUSTED);
            config.setEvictionPolicyClassName(EVICTION_POLICY_CLASSNAME);
            config.setJmxEnabled(JMX_ENABLED);
            config.setJmxNamePrefix(JMX_NAME_PREFIX);
            config.setLifo(LIFO);
            config.setMaxIdle(MAX_IDLE);
            config.setMaxTotal(MAX_TOTAL);
            config.setMaxWaitMillis(MAX_WAIT);
            config.setMinEvictableIdleTimeMillis(MIN_EVICTABLE_IDLE_TIME_MILLIS);
            config.setMinIdle(MIN_IDLE);
            config.setNumTestsPerEvictionRun(NUM_TESTS_PER_EVICYION_RUN);
            config.setSoftMinEvictableIdleTimeMillis(SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS);
            config.setTestOnBorrow(TEST_ON_BORROW);
            config.setTestWhileIdle(TEST_WHILEIDLE);
            config.setTimeBetweenEvictionRunsMillis(TIME_BERWEEN_EVICTION_RUNS_MILLIS);
            jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT);
        } catch (Exception e) {
            logger.error("Redis连接池 初始化异常" + e);
            e.printStackTrace();
        }
    }
    /**
     * 获取连接
     */
    public static Jedis getJedis() {
        return  jedisPool.getResource();
    }
    /**
     * 释放连接
     */
    public static void closeJedis(Jedis jedis) {
            jedis.close();
    }
}

3.4 常用方法

// String
jedis.set("name","LiMing");   
jedis.get("name");
jedis.del("name");
// List
jedis.lpush("user","LiMing");
jedis.lindex("user",1);
jedis.lset("user",0,"DaBai");
jedis.lrange("user",0,2);
// Hash
jedis.hset("age","LiMing","1");
jedis.hvals("age");
jedis.hexists("age","XiaoHong");
jedis.hgetAll("age");
jedis.hdel("age","LiMing");
jedis.hsetnx("age","ZhangSheng","20");
// Set
jedis.sadd("num","1");
jedis.smembers("num");
jedis.scard("num");
jedis.sismember("num","2");
jedis.srem("num","2");

Sorted Set 使用与Set相近

4 可视化工具推荐

Another Redis Desktop Manager
可自行选择版本下载,这是我目前使用起来相对较为方便的Redis可视化工具
PS:
1 、 在代码开发阶段,可将Redis的配置文件中 bind 127.0.0.1 注释掉,后续可根据实际部署需求决定是否删除该注释。
2、 一般设置仅本机访问时,redis连接可不设置密码,放在外网的Redis服务,若短暂启用远程访问,建议设置个密码,否则容易被攻击,造成内存紧张,redis崩溃。
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-29 13:06:54  更:2021-10-29 13:07:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:42:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码