栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

redis 操作(java操作redis)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

redis 操作(java操作redis)

文章目录

Redis详解(六)Jedis操作Redis

1.下载jedis和commons-pool

单独使用jedis 2.Java应用使用Jedis准备

Redis详解(六)Jedis操作Redis

使用jedis在java应用中操作Redis。Jedis几乎涵盖了redis的所有命令。

jedis源码:https://github.com/redis/jedis 1.下载jedis和commons-pool


    redis.clients
    jedis
    4.1.1

jedis可以单独使用,一般和Commons-Pool一起使用,有多个线程单独操作redis。


    org.apache.commons
    commons-pool2
    2.11.1


单独使用jedis
package com.firewolf;

import redis.clients.jedis.Jedis;

import java.util.List;

public class StringRedisPrimary {
    public static void main(String[] args) {
//        redis所在的linux的ip
        String host = "127.0.0.1";
//        redis的运行端口
        int port = 6379;
//        创建jedis对象,通过jedis的方法,操作redis数据
        Jedis jedis = new Jedis(host,port);
//        设置访问密码
//        jedis.auth("123456");

//        通过jedis的方法操作redis数据
        jedis.set("eat","减脂餐");
//        获取数据
        System.out.println("eat="+jedis.get("eat"));
//        创建多个key-value
        jedis.mset("lunch","红烧牛肉面","dinner","左旋溜达鸡");
//        获取多个值
        List values = jedis.mget("eat","lunch","dinner");

        for (String v:values){
            System.out.println(v);
        }
//        查询id=1 Student,key == student:1
        if(jedis.exists("student:1")){
            String  student = jedis.get("student:1");
        }else {
//            访问数据库,Student 对象
//            把Student转为json数据
            jedis.set("student:1","{student}");
        }

    }
}

2.Java应用使用Jedis准备

创建一个工具类

package com.firewolf.utils;

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

public class RedisUtils {
//    JedisPool有一个就够用了
    private static JedisPool pool;
//    创建线程池
    public static JedisPool open(String host,int port){
        if(pool==null){
//            设置线程池的参数
            JedisPoolConfig config = new JedisPoolConfig();
//            设置最大线程数量
            config.setMaxTotal(100);
//            设置空闲数
            config.setMaxIdle(2);
//            设置检查项为true,避免null的情况   确保线程池获取的对象是可用的。
            config.setTestOnBorrow(true);
//            创建JedisPool  6000是超时时间:6秒钟没有连接到redis就放弃
            pool = new JedisPool(config,host,port,6000);
//            带密码情况
//            pool = new JedisPool(config,host,port,6000,"123456");
        }
        return pool;
    }
  
//    关闭线程池,在整个程序结束后执行
    public static void close(){
        if(pool!=null){
            pool.close();
        }
    }
}

使用线程池

package com.firewolf;

import com.firewolf.utils.RedisUtils;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

import java.util.List;

public class StringRedisPrimaryPool {
    public static void main(String[] args) {
        String host = "127.0.0.1";
        int port = 6379;

        Jedis jedis = null;
        JedisPool pool= null;

        try{
//            获取pool,从pool中获取jedis对象
            pool = RedisUtils.open(host,port);
            jedis = pool.getResource();
            jedis.set("eat","减脂餐");
//        获取数据
            System.out.println("eat="+jedis.get("eat"));
//        查询id=1 Student,key == student:1
            if(jedis.exists("student:1")){
                String  student = jedis.get("student:1");
            }else {
//            访问数据库,Student 对象
//            把Student转为json数据
                jedis.set("student:1","{student}");
            }

        }finally {
//            把使用完毕的jedis放回到Pool中,让其他客户端使用
            if(jedis!=null){
                jedis.close();
            }
        }

    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/776242.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号