使用jedis客户端连接redis,单机版和集群版

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 单机版1.入门实例 @Test public void testJedis(){ //创建一个jedis对象,需要指定服务的ip和端口号 Jedis jedis=new Jedis("192.

单机版

1.入门实例

 @Test
    public void testJedis(){
        //创建一个jedis对象,需要指定服务的ip和端口号
        Jedis jedis=new Jedis("192.168.25.11",6379);
        //直接操作数据库
        jedis.set("str","nihao");
        //关闭
        jedis.close();
    }
存值
@Test
    public void testGetJedis(){
        //创建一个jedis对象,需要指定服务的ip和端口号
        Jedis jedis=new Jedis("192.168.25.11",6379);
        //直接操作数据库
        String str = jedis.get("str");
        System.out.println(str);
        //关闭
        jedis.close();
    }
取值
 <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
<jedis.version>2.7.2</jedis.version>
        </dependency>
pom依赖

这样使用的话,每次都需要创建连接和关闭连接,耗费性能,所以一般实际项目中我们一般会采用连接池的方式进行开发

2.使用数据库连接池的方式操作redis

    @Test
    public  void testJedisPool(){
        //创建连接池(单例),需要指定服务ip和端口号
        JedisPool pool=new JedisPool("192.168.25.11",6379);
        //从连接池中获得连接
        Jedis resource = pool.getResource();
        //使用Jedis操作数据库(方法级别使用)
        String str = resource.get("str");
        System.out.println(str);
        //一定要关闭Jedis连接
        resource.close();
        //系统关闭前关闭连接池
        pool.close();
    }
使用数据库连接池的方式操作redis

 

集群版

1.直接使用

  public void testRedisCluster() {
        //创建一个JedisCluster对象,构造参数Set类型,集合中每个元素 是一个HostAndPort类型
       Set<HostAndPort> nodes=new HashSet<>();
        nodes.add(new HostAndPort("192.168.25.11",7001));
        nodes.add(new HostAndPort("192.168.25.11",7002));
        nodes.add(new HostAndPort("192.168.25.11",7003));
        nodes.add(new HostAndPort("192.168.25.11",7004));
        nodes.add(new HostAndPort("192.168.25.11",7005));
        nodes.add(new HostAndPort("192.168.25.11",7006));

        JedisCluster jedisCluster=new JedisCluster(nodes);
        //直接使用JedisCluster操作redis,自带连接池,JedisCluster可以是单例的
        jedisCluster.set("nihao","你好");

        System.out.println(jedisCluster.get("nihao"));
        //系统关闭前,关闭JedisCluster.
        jedisCluster.close();
    }
连接redis集群

 

使用Spring整合redis集群

 <bean class="redis.clients.jedis.JedisCluster" id="jedisCluster">
        <constructor-arg name="nodes">
            <set>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.11"/>
                    <constructor-arg name="port" value="7001"/>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.11"/>
                    <constructor-arg name="port" value="7002"/>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.11"/>
                    <constructor-arg name="port" value="7003"/>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.11"/>
                    <constructor-arg name="port" value="7004"/>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.11"/>
                    <constructor-arg name="port" value="7005"/>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="192.168.25.11"/>
                    <constructor-arg name="port" value="7006"/>
                </bean>
            </set>
        </constructor-arg>
    </bean>
    <bean class="com.taotao.jedis.JedisClientCluster" id="jedisCluster"/>
Spring配置文件中配置集群信息和客户端
    private JedisCluster jedisCluster;
    @Before
    public  void testBefore(){
        ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("Spring/applicationContext-redis.xml");
        jedisCluster=classPathXmlApplicationContext.getBean(JedisCluster.class);
    }
    @Test
    public  void testJedisSping(){
        jedisCluster.set("11","11");
        System.out.println( jedisCluster.get("11"));
    }
测试代码

 

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6天前
|
NoSQL Linux Redis
06- 你们使用Redis是单点还是集群 ? 哪种集群 ?
**Redis配置:** 使用哨兵集群,结构为1主2从,加上3个哨兵节点,总计分布在3台Linux服务器上,提供高可用性。
16 0
|
14天前
|
负载均衡 监控 NoSQL
Redis的集群方案有哪些?
Redis集群包括主从复制(基础,手动故障恢复)、哨兵模式(自动高可用)和Redis Cluster(官方分布式解决方案,自动分片和容错)。此外,还有如Codis、Redisson和Twemproxy等第三方工具用于代理和负载均衡。选择方案需考虑应用场景、数据规模和并发需求。
17 2
|
1月前
|
NoSQL 网络安全 Redis
用Windows连接Liunx中的redis
用Windows连接Liunx中的redis
23 0
|
20天前
|
NoSQL Redis
Redis集群(六):集群常用命令及说明
Redis集群(六):集群常用命令及说明
15 0
|
18天前
|
缓存 运维 NoSQL
【Redis故障排查】「连接失败问题排查和解决」带你总体分析和整理Redis的问题故障实战开发指南及方案
【Redis故障排查】「连接失败问题排查和解决」带你总体分析和整理Redis的问题故障实战开发指南及方案
39 0
|
13天前
|
NoSQL 安全 网络安全
Redis连接:加速数据访问与保障安全传输的关键
Redis连接:加速数据访问与保障安全传输的关键
|
14天前
|
NoSQL Java 测试技术
面试官:如何搭建Redis集群?
**Redis Cluster** 是从 Redis 3.0 开始引入的集群解决方案,它分散数据以减少对单个主节点的依赖,提升读写性能。16384 个槽位分配给节点,客户端通过槽位信息直接路由请求。集群是无代理、去中心化的,多数命令直接由节点处理,保持高性能。通过 `create-cluster` 工具快速搭建集群,但适用于测试环境。在生产环境,需手动配置文件,启动节点,然后使用 `redis-cli --cluster create` 分配槽位和从节点。集群动态添加删除节点、数据重新分片及故障转移涉及复杂操作,包括主从切换和槽位迁移。
27 0
面试官:如何搭建Redis集群?
|
18天前
|
NoSQL Java Redis
【Redis深度专题】「踩坑技术提升」一文教会你如何在支持Redis在低版本Jedis情况下兼容Redis的ACL机制
【Redis深度专题】「踩坑技术提升」一文教会你如何在支持Redis在低版本Jedis情况下兼容Redis的ACL机制
48 0
|
18天前
|
存储 缓存 NoSQL
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群功能分析)(一)
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群功能分析)
41 0
|
20天前
|
NoSQL Redis
Netty实战:模拟Redis的客户端
Netty实战:模拟Redis的客户端
11 0