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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> IDEA:Java连接Redis(Jedis连接及数据操作) -> 正文阅读

[大数据]IDEA:Java连接Redis(Jedis连接及数据操作)

目录

前言

Java怎么连接Redis?

1. 直接连接

2. 通过Redis连接池获取对象

3. 封装JedisUtil对外提供连接对象的获取方法

Java操作Redis五种数据类型

1. 操作String字符串

2. 操作Hash表

3. 操作List列表

4. 操作Set集合

5. 操作SortedSet有序集合


前言


? ? ? ? Jedis 就是Java Redis ,集成了Redis的相关命令操作,它是Java语言操作Redis数据库的桥梁。

? ? ? ? Jedis客户端封装了Redis数据库的大量命令。参考文档:Jedis的API文档

Java怎么连接Redis?


1. 直接连接

    JedisPool jedisPool = null;  // 连接池
    Jedis jedis = null;

    @Before    // 一个类中最先执行的方法
    public void init(){

        // 方法一 : 直接连接
        jedis = new Jedis("192.168.182.101",6379);     // 创建jedis对象,连接redis服务
        jedis.auth("123456");   // 设置认证密码
        String pong = jedis.ping();    // 模拟心跳机制,使用ping命令,测试连接是否成功
        System.out.println(pong);   // 返回pong

    }

2. 通过Redis连接池获取对象

 JedisPool jedisPool = null;  // 连接池
    Jedis jedis = null;

    @Before    // 一个类中最先执行的方法
    public void init(){

        // 方法二 : 通过连接池的方式获取 Jedis
        jedisPool = new JedisPool(new JedisPoolConfig(),
                "192.168.182.101", 6379, 10000, "123456");
        jedis = jedisPool.getResource();    // 返回一个jedis对象
        String pong = jedis.ping();    // 模拟心跳机制,使用ping命令,测试连接是否成功
        System.out.println(pong);   // 返回pong

    }

3. 封装JedisUtil对外提供连接对象的获取方法

    JedisPool jedisPool = JedisUtil.redisPoolFactory();  // 连接池
    Jedis jedis = null;

    @Before    // 一个类中最先执行的方法
    public void init(){

        // 方法三 : 封装JedisUtil对外提供连接对象获取方法
        jedis = jedisPool.getResource();    // 返回一个jedis对象
        String pong = jedis.ping();    // 模拟心跳机制,使用ping命令,测试连接是否成功
        System.out.println(pong);   // 返回pong
    }

封装JedisUtil.java?

package com.yjxxt.util;

import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class JedisUtil {

    //服务器地址
    private static final String host = "192.168.182.101";
    //端口
    private static final int port = 6379;
    //密码
    private static final String password = "123456";
    //超时时间
    private static final String timeout = "10000";
    //最大连接数
    private static final int maxTotal = 1024;
    //最大连接阻塞等待时间
    private static final String maxWaitMillis = "10000ms";
    //最大空闲连接
    private static final int maxIdle = 200;
    //最小空闲连接
    private static final int minIdle = 5;

    public static JedisPool redisPoolFactory() {
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxWaitMillis(Long.parseLong(maxWaitMillis.substring(0,
                maxWaitMillis.length() - 2)));
        jedisPoolConfig.setMaxTotal(maxTotal);
        jedisPoolConfig.setMaxIdle(maxIdle);
        jedisPoolConfig.setMinIdle(minIdle);
        JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port,
                Integer.parseInt(timeout.substring(0, timeout.length() - 2)), password);
        return jedisPool;
    }

}

Java操作Redis五种数据类型


1. 操作String字符串

package com.yjxxt;

import com.yjxxt.util.JedisUtil;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.util.HashMap;
import java.util.Map;

public class jedisTest {

    JedisPool jedisPool = JedisUtil.redisPoolFactory(); 
    Jedis jedis = null;

    @Before  
    public void init(){

        jedis = jedisPool.getResource();    
        String pong = jedis.ping();    
        System.out.println(pong);   

    }

    /*
        1. 操作String
     */

    @Test
    public void testString(){  
        // 切换数据库
        jedis.select(0);    // 指定数据库,默认0
        // 添加一条数据
        System.out.println(jedis.set("username","zhangsan"));
        // 获取一条数据
        System.out.println(jedis.get("username"));
        // 添加多条数据
        System.out.println(jedis.mset("age","18","address","sh"));
        // 获取多条数据
        System.out.println(jedis.mget("age","address"));
    }

    @After  // 一个类中最后执行的方法
    public void close(){
        if (jedis != null){
            jedis.close();   // 关闭jedis,释放资源
        }
    }
}

2. 操作Hash表

    /*
        2. 操作Hash
     */
@Test
    public void testHash(){
        // 切换数据库
        jedis.select(1);   // 指定数据库,默认0

        // 1.HSET
//        jedis.hset("user","name","zhangsan");  // (1).正常传入

        Map<String,String> userMap = new HashMap<>();
        userMap.put("name","lisi");
        userMap.put("age","20");
        System.out.println(jedis.hset("user", userMap));  // (2).传入redis的key,HashMap对象

        // 2.HGET
        System.out.println(jedis.hget("user", "name"));

        // 3.HMSET
        System.out.println(jedis.hmset("user02", userMap));

        // 4.HMGET
        System.out.println(jedis.hmget("user", "name", "age"));

        // 5.HGETALL
        System.out.println(jedis.hgetAll("user"));

        // 6.HDEL
        System.out.println(jedis.hdel("user", "age"));
    }

3. 操作List列表

    /*
        3. 操作List
     */
    @Test
    public void testList(){
        jedis.select(2);
        System.out.println(jedis.lpush("stu", "zhangsan", "lisi", "wangwu"));   // 左插入
        System.out.println(jedis.lrange("stu", 0, 2));      // 左遍历
        System.out.println(jedis.lpop("stu"));      // 左删除
    }

4. 操作Set集合

/*
        4. 操作Set集合
     */
    @Test
    public void testSet(){
        jedis.select(3);
        System.out.println(jedis.sadd("letters", "a", "b", "c"));
        System.out.println(jedis.smembers("letters"));
    }

5. 操作SortedSet有序集合

/*
        5. 操作SortedSet有序集合
     */
    @Test
    public void testSortedSet(){
        jedis.select(4);
        Map<String,Double> stuMap = new HashMap<>();
        stuMap.put("zhangsan",95D);
        stuMap.put("lisi",92D);
        stuMap.put("wangwu",100D);
        System.out.println(jedis.zadd("stu", stuMap));  // 传对象
        System.out.println(jedis.zrange("stu", 0, 2));  // 遍历
        System.out.println(jedis.zrevrange("stu", 0, 2));  // 反转遍历

    }

已经到底了。。。。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-06 12:17:51  更:2021-10-06 12:20:09 
 
开发: 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 1:21:36-

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