频道栏目
首页 > 资讯 > 其他综合 > 正文

Redis的java客户端jedis解析

18-08-22        来源:[db:作者]  
收藏   我要投稿

Java 连接 MySql 我们有 mysql-connector ,连接 Redis 我们有 jedis。

一、引入依赖


    redis.clients
    jedis
    2.9.0

对应的是这两个 jar 包:

这里写图片描述

二、关闭 Redis 服务器端的防火墙

Ubuntu:ufw disable

CentOS:/etc/init.d/iptables start

三、修改Redis 的配置文件

修改 redis 配置文件中绑定的 ip 为虚拟机所占用的 ip地址:

这里写图片描述

四、使用 Jedis 提供的 API

package com.qjl.pems.test;

import java.util.Set;

import org.junit.Test;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;

/**
 * 类描述:测试Redis的客户端Jedis
 * 全限定性类名: com.qjl.pems.test.JedisTest
 * @author 曲健磊
 * @date 2018年8月15日上午8:18:19
 * @version V1.0
 */
public class JedisTest {

    /**
     * 测试与redis的连通性
     */
    @Test
    public void testPing() {
        Jedis jedis = new Jedis("192.168.198.130", 6379);
        System.out.println(jedis.ping());
        jedis.close();
    }

    /**
     * 测试redis常用api
     */
    @Test
    public void testRedisAPI() {
        Jedis jedis = new Jedis("192.168.198.130", 6379);
//      String info = jedis.info("replication");
//      System.out.println(info);
        jedis.set("k1", "v1");
        jedis.set("k2", "v2");
        jedis.set("k3", "v3");
        System.out.println(jedis.get("k2"));

        Set sets = jedis.keys("*");
        System.out.println(sets.size());
        jedis.close();
    }

    /**
     * 演示主从复制
     */
    @Test
    public void testMasterSlave() {
        Jedis jedisM = new Jedis("192.168.198.130", 6379);
        Jedis jedisS = new Jedis("192.168.198.130", 6380);

        jedisS.slaveof("192.168.198.130", 6379);
        jedisM.set("name", "qujianlei");
        String result = jedisS.get("name");
        System.out.println(result);
        jedisM.close();
        jedisS.close();
    }

    /**
     * 演示事务
     */
    @Test
    public void testTransaction() {
        Jedis jedis = new Jedis("192.168.198.130", 6379);
        jedis.set("balanceA", "100"); // A账户可用余额
        jedis.set("balanceB", "220"); // B账户可用余额

        // 互斥锁(锁key)
        jedis.watch("balanceA");

        System.out.println("=====开始转账 A-->B 50 =====");

        Transaction tx = jedis.multi();

        tx.decrBy("balanceA", 50);
        tx.incrBy("balanceB", 50);

        tx.exec();

        System.out.println("=====转账结束=====");
        // 解锁全部被watch的key
        jedis.unwatch();

        System.out.println("======开始取款=====");
        System.out.println("A账户可用余额:" + jedis.get("balanceA"));
        System.out.println("B账户可用余额:" + jedis.get("balanceB"));

        jedis.close();
    }
}
相关TAG标签
上一篇:MySQL存储过程入门
下一篇:Redis常用技术之超时命令解析
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站