使用java连接redis

举报
Nick Qiu 发表于 2018/12/25 17:44:22 2018/12/25
【摘要】 前言本文介绍如何使用java 连接redis。使用 jedis。准备工作新建一个java gradle项目;build.gradle内容如下;plugins { id 'java' id 'io.spring.dependency-management' version '1.0.1.RELEASE'}group 'org.nick'version '1.0-SNAPSHOT's...

前言

本文介绍如何使用java 连接redis。使用 jedis

准备工作

  • 新建一个java gradle项目;build.gradle内容如下;

plugins {
    id 'java'
    id 'io.spring.dependency-management' version '1.0.1.RELEASE'
}

group 'org.nick'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}
dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'                               //
    compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.11.0'  
    compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'               //日志依赖
    compile group: 'redis.clients', name: 'jedis', version: '2.9.0'                          //jedis依赖
}

简单测试

如下新建了一个jedis连接,并写入一个字符串。

public class RedisBasic {    private static Logger logger = LoggerFactory.getLogger(RedisBasic.class);    public static void main(String[] args) {
        logger.info("start test.{}", args.length);        Jedis jedis = new Jedis("192.168.1.222", 6379);
        jedis.set("name", "nick");        String value = jedis.get("name");
        logger.info("get name:{}", value);
        jedis.close();
    }
}

JedisPool的使用

如下配置新建了要给JedisPool连接池,并做了一系列读写操作。

public class RedisPool {    private static Logger logger = LoggerFactory.getLogger(RedisPool.class);    JedisPool pool ;    private void init(){
        pool = new JedisPool();        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();        // 设置最大10个连接
        jedisPoolConfig.setMaxTotal(500);
        jedisPoolConfig.setMaxIdle(500);
        jedisPoolConfig.setMinIdle(30);
        jedisPoolConfig.setMaxWaitMillis(1000*60);
        pool = new JedisPool(jedisPoolConfig, "192.168.1.222",6379);
        logger.info("init connection success. ");
    }    public void testPing(){        // Jedis 实现了java.lang.AutoCloseable接口,所以这里可以用java 1.7 try-with-resources语法自动完成close
        try(Jedis jedis = pool.getResource()){            //查看服务是否运行 PING
            logger.info("try ping: {}",jedis.ping());
        }
    }    public void testString(){        try(Jedis jedis = pool.getResource()){
            jedis.set("test_name", "thiis is a 字符");
            logger.info("redis test_name:{} ", jedis.get("test_name"));
        }
    }    public void testList() {        try (Jedis jedis = pool.getResource()) {            // 选择数据库:  SELECT 2
            jedis.select(2);            // 存储数据到列表中
            // LPUSH
            jedis.lpush("class_list", "语文");
            jedis.lpush("class_list", "english");            // 获取存储的数据并输出: LRANGE phone_list 0 2
            List<String> list = jedis.lrange("class_list", 0, 1);            for (int i = 0; i < list.size(); i++) {
                logger.info("class_list:{} " , list.get(i));
            }
        }
    }    public void close(){        if(null != pool){
            pool.destroy();
            logger.info("destroy the pool");
        }
    }    public static void main(String[] args) {        RedisPool redisPool = new RedisPool();
        redisPool.init();
        redisPool.testPing();
        redisPool.testString();
        redisPool.testList();
        redisPool.close();
    }
}


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。