系列导航

一、redis单例安装(linux)

二、redis主从环境搭建

三、redis集群搭建

四、redis增加密码验证

五、java操作redis

--demo主方法

package com.redis;

import com.JedisCluster;
import java.util.HashSet;
 
/**
 * 描述:redis集群样例。
 * <p>项目名称: redis集群</p>
 * <p>文件名称: DemonMain.java</p>
 */
public class DemonMain {
    static HashSet set = new HashSet();
    private static JedisClusterFactory jedisClusterFactory = new JedisClusterFactory();
    private static JedisCluster jedisCluster = jedisClusterFactory.getJedisCluster();
 

    /**
     * 描述:redis测试是的主函数。
     *
     * @param args 主函数的参数
     */
    public static void main(String[] args) {
        RedisService rs = new RedisService();
        //普通的操作
        jedisCluster.set("key", "0");
        String value = jedisCluster.get("key");
    }
}

//redis操作不同的数据集可以参考https://www.cnblogs.com/edisonfeng/p/3571870.html 写的比较全面

//本例主要提供一个连接redis集群的公共配置类

----连接配置类

package com.redis;

import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPoolConfig;

import java.util.HashSet;
import java.util.Set;

/**
 * 描述:redis集群样例。
 * <p>项目名称: redis集群</p>
 */
public class JedisClusterFactory {
    private static final String MODULE = JedisClusterFactory.class.getName();

    JedisPoolConfig poolConfig;

    private JedisCluster jedisCluster;
    private int connectionTimeout = 1000;
    private int soTimeout = 2000;
    private int maxRedirections = 30;

    private Set<String> jedisClusterNodes;

    private static JedisClusterFactory instance = null;

    /**
     * 描述:redis的构造函数(配置信息)。
     */
    public JedisClusterFactory() {
        try {
            Set<HostAndPort> haps = new HashSet<HostAndPort>();
 

            String hostIp = "127.0.0.1";
            haps.add(new HostAndPort(hostIp, 7001));
            haps.add(new HostAndPort(hostIp, 7002));
            haps.add(new HostAndPort(hostIp, 7003));
            haps.add(new HostAndPort(hostIp, 7004));
            haps.add(new HostAndPort(hostIp, 7005));
            haps.add(new HostAndPort(hostIp, 7006));

            JedisPoolConfig poolConfig = new JedisPoolConfig();
            // 控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取;
            // 如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
            poolConfig.setMaxTotal(20);

            // 控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。
            poolConfig.setMaxIdle(50);
            poolConfig.setMinIdle(20);
            // 表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;
            poolConfig.setMaxWaitMillis(1000 * 100);
            // 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
            poolConfig.setTestOnBorrow(true);
        //密码
            String password = "redispass";
            jedisCluster = new JedisCluster(haps, connectionTimeout, soTimeout, maxRedirections, password, poolConfig);
            //如下是不加密码的写法
            //jedisCluster = new JedisCluster(haps, connectionTimeout, soTimeout, maxRedirections, poolConfig);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 描述:redis的构造函数(配置信息)。
     *
     * @return JedisClusterFactory redis集群的连接信息
     */
    public static synchronized JedisClusterFactory getInstance() {
        if (instance == null) {
            instance = new JedisClusterFactory();
        }
        return instance;
    }

    public JedisPoolConfig getPoolConfig() {
        return poolConfig;
    }

    public void setPoolConfig(JedisPoolConfig poolConfig) {
        this.poolConfig = poolConfig;
    }

    public JedisCluster getJedisCluster() {
        return jedisCluster;
    }

    public void setJedisCluster(JedisCluster jedisCluster) {
        this.jedisCluster = jedisCluster;
    }

    public int getConnectionTimeout() {
        return connectionTimeout;
    }

    public void setConnectionTimeout(int connectionTimeout) {
        this.connectionTimeout = connectionTimeout;
    }

    public int getSoTimeout() {
        return soTimeout;
    }

    public void setSoTimeout(int soTimeout) {
        this.soTimeout = soTimeout;
    }

    public int getMaxRedirections() {
        return maxRedirections;
    }

    public void setMaxRedirections(int maxRedirections) {
        this.maxRedirections = maxRedirections;
    }

    public Set<String> getJedisClusterNodes() {
        return jedisClusterNodes;
    }

    public void setJedisClusterNodes(Set<String> jedisClusterNodes) {
        this.jedisClusterNodes = jedisClusterNodes;
    }
}
                                                    

五、java操作redis的更多相关文章

  1. 最全的Java操作Redis的工具类,使用StringRedisTemplate实现,封装了对Redis五种基本类型的各种操作!

    转载自:https://github.com/whvcse/RedisUtil 代码 ProtoStuffSerializerUtil.java import java.io.ByteArrayInp ...

  2. Linux+Redis实战教程_day02_3、redis数据类型_4、String命令_5、hash命令_6、java操作redis数据库技术

    3. redis数据类型[重点] redis 使用的是键值对保存数据.(map) key:全部都是字符串 value:有五种数据类型 Key名:自定义,key名不要过长,否则影响使用效率 Key名不要 ...

  3. Redis基础知识、命令以及java操作Redis

    1 nosql的概念 sql:操作(关系型)数据库的标准查询语言 关系型数据库(rdbms):以关系(由行和列组成的二维表)模型为核心数据库,有表的储存系统.(mysql.oracle.sqlserv ...

  4. Redis入门(四)-Java操作Redis

    <Redis入门>系列文章的第四篇,这一节看一下如何用Java版本的redis客户端工具--Jedis来操作redis. Jedis封装了丰富的api来对redis的五种数据类型 stri ...

  5. Redis-基本概念、java操作redis、springboot整合redis,分布式缓存,分布式session管理等

    NoSQL的引言 Redis数据库相关指令 Redis持久化相关机制 SpringBoot操作Redis Redis分布式缓存实现 Resis中主从复制架构和哨兵机制 Redis集群搭建 Redis实 ...

  6. java操作redis之jedis篇

    首先来简单介绍一下jedis,其实一句话就可以概括的,就是java操作redis的一种api.我们知道redis提供了基本上所有常用编程语言的clients,大家可以到http://redis.io/ ...

  7. java 操作redis

    使用Java操作Redis需要jedis-2.1.0.jar,如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar package com.test; import ja ...

  8. windows下Redis安装及利用java操作Redis

    一.windows下Redis安装 1.Redis下载 下载地址:https://github.com/MicrosoftArchive/redis 打开下载地址后,选择版本 然后选择压缩包 下载 R ...

  9. java操作redis集群配置[可配置密码]和工具类(比较好用)

    转: java操作redis集群配置[可配置密码]和工具类 java操作redis集群配置[可配置密码]和工具类     <dependency>   <groupId>red ...

  10. java操作redis集群配置[可配置密码]和工具类

    java操作redis集群配置[可配置密码]和工具类     <dependency>   <groupId>redis.clients</groupId>   & ...

随机推荐

  1. 文心一言 VS 讯飞星火 VS chatgpt (148)-- 算法导论12.2 3题

    三.用go语言,写出过程 TREE-PREDECESSOR 的伪代码. 文心一言: 以下是使用Go语言编写的TREE-PREDECESSOR函数的伪代码: func TREE-PREDECESSOR( ...

  2. springcloud 实体类使用@Builder@AllArgsConstructor两个注解后查询执行操作时报数据转换异常

    异常日志如下: org.springframework.jdbc.UncategorizedSQLException: Error attempting to get column 'DATA_SOU ...

  3. [CF403E]Two Rooted Trees

    Two Rooted Trees 题面翻译 题目描述 你有两棵有根树,每棵树都有 \(n\) 个结点.不妨将这两棵树上的点都用 \(1\) 到 \(n\) 之间的整数编号.每棵树的根结点都是 \(1\ ...

  4. Head First Java学习:第九章-构造器和垃圾收集器

    对象的前世今生 对象如何创建.存在何处以及如何让保存和抛弃更有效率. 会述及堆.栈.范围.构造器.超级构造器.空引用等. 1.内存的两个区域:堆和栈 堆(heap):对象的生存空间,又称为可垃圾回收的 ...

  5. SpringSecurity入门(SSM版)

    1. 简介 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Sp ...

  6. linux没有ifconfig命令

    直接控制台安装(输入下面对应的tools命令就好了) ifconfig yum install -y net-tools.x86_64 vim yum -y install vim*

  7. DRF过滤器

    https://www.django-rest-framework.org/api-guide/filtering 一般情况下,我们可以重写DRF视图类的get_queryset()方法来实现查询结果 ...

  8. 【UniApp】-uni-app-动态计算字体大小(苹果计算器)

    前言 本文主要介绍uni-app中动态计算字体大小的方法 原因呢就是在上一篇文章当中我发现输入的内容已经超过了展示区域 于是我就想到了动态计算字体大小的方法,这样就可以保证输入的内容不会超过展示区域 ...

  9. Pikachu漏洞靶场 Burte Force(暴力破解)

    Burte Force(暴力破解) 文章目录 Burte Force(暴力破解) 概述 1.基于表单的暴力破解 2.验证码绕过(on server) 3.验证码绕过(on client) 4.toke ...

  10. Android学习--Intent

    Intent : Intent 是一个动作的完整描述,一种运行时的绑定机制,Intent中包含对Intent有兴趣的组件信息,如对动作的产生组件.接受组件和传递的数据信息.Android根据此Inte ...