Java代码如何使用Jedis操作Redis数据库(持续更新)

下载Redis:

  1. 下载压缩包

地址:https://pan.baidu.com/s/1UBOoef_Szdkrzd0rJ2BeZg
提取码:2gun
在这里插入图片描述

2.解压到自定义的reids文件夹,解压后如图所示

这里是引用

3.进自定义的redis文件夹,在地址栏输入cmd,点击回车

输入redis-server.exe redis.windows.conf
出现[9920] 17 Nov 10:00:12.064 # Creating Server TCP listening socket 127.0.0.1:6379: bind: No error则运行成功在这里插入图片描述

4.现在进入自定义的文件夹打开reids-cli.exe出现弹窗

在这里插入图片描述

5.ok目前你就可以在本地以cmd的方式使用redis了,接下来我会讲解如何在Java中使用redis数据库.

在Java中集成reids:

首先确保本地安装reids: 1.导入jar包
    <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
2.建立Jedis的全局变量
public class TestRedis {

    public static Jedis jedis =null;

    /**
     * @BeforeClass
     * 加载于静态方法之上一般,在所有方法执行前执行,只加载一次
     */
    @BeforeClass
    public static void init() {
        jedis = new Jedis("localhost");
        System.out.println(jedis.ping());
    }
}

Jedis对Key的操作:

JAVA代码:
     * Jedis对key 的一下操作
     */
    @Test
    public void keyTest(){
        //exists(key)判断key值是否存在
        Boolean exists = jedis.exists("key");

        //del(key)删除一个key
        Long del = jedis.del("key");

        //type(key) 返回key值的类型
        String type = jedis.type("key");

        //keys(*)返回所有key值
        Set<String> keys = jedis.keys("key");

        //randomKey()随机返回空间中的一个key
        String randomKey = jedis.randomKey();

        //remname(oldname newname) 将key由oldname重命名为newname
        String rename = jedis.rename("oldkey","newkey");

        //dbSize()返回当前数据库中key的数目
        Long dbSize = jedis.dbSize();

        //expire(key  time(毫秒)) 给key值设置过期时间
        Long expire =jedis.expire("key",2000);

        //ttl获得一个key的活动时间
        Long ttl = jedis.ttl("key");

        //select(index) 按照索引查询
        String select = jedis.select(1);

        //move(key,1)将当前数据库中的key转移到dbindex索引的数据库
        Long move =jedis.move("key",1);

        //flushDB()删除当前数据库中的所有key
        String flushDB =jedis.flushDB();

        //flishAll()删除数据库中的所有的key
        String flushAll = jedis.flushAll();

    }

Jedis对String的操作:

JAVA代码:
    @Test
    public void StringTest() throws InterruptedException {
        //set(key value)
        String set = jedis.set("key1", "value1");
        System.out.println(set);  //1.创建成功返回  "ok"  2.key的值如果一样,后一次添加的会覆盖之前的数据.

        //get(key)
        String get = jedis.get("key1");
        System.out.println(get);  //1.返回值为 "value1"

        //getSet(key value)  给key重新赋值,并且返回被重新赋值前的value
        String  getSet = jedis.getSet("key1","value2");
        System.out.println(getSet);
        System.out.println(jedis.get("key1"));

        //mget(key key1 key2 ...) 获取多个key对应的value
        List<String> mget = jedis.mget("key1","key2","key3","key4");
        for (String str : mget) {
            System.out.println(str);
        }

        //setnx(key  value)如果库不存在想要添加的key,就添加,可以避免覆盖
        Long setnx = jedis.setnx("key7","value7");
        System.out.println(setnx);  // 成功返回 1
        Long setnx1 = jedis.setnx("key7","value7");
        System.out.println(setnx1);  //失败返回 0

        //setex(key  time  value)向库中添加的同时,设置时间
        String setex = jedis.setex("key8",10,"value8");
        System.out.println(setex);
        for (int i = 0; i < 100; i++) {
            System.out.println(jedis.get("key8"));
            Thread.sleep(1000);
        }

        //mset(key value key1 value1 key2 value2 ...)
        String mset = jedis.mset("key11","value11","key12","value12");
        System.out.println(mset);  //返回值为ok

        //msetnx(key value key1 value1 key2 value2)  所有的值都不存在的时候就是保存
        Long msetnx = jedis.msetnx("key14","value1-1","key13","value12");
        System.out.println(msetnx);  //返回值 成功为1  失败为0

        //incr(key) 相当于value+1
        Long incr = jedis.incr("111");
        System.out.println(incr); //返回值为value+1 的值

       // incrby(key,integer) 相当于value+integer
        Long get1 = jedis.incrBy("111",6);
        System.out.println(get); //返回值为value+integer的值
        //decr(key) 相当于value-1
        //decr(key integer)  相当于value-integer

        //append("key" "content")
        Long append =jedis.append("111","connect");
        System.out.println(append); //返回值为value的长度

        //substr("key") 返回value串
        String substr = jedis.substr("111",0, -1);
        System.out.println(substr);  //0为起始位置,1为结尾位置
    }

Jedis对list的操作:

JAVA代码
   /**
     * Jedis对List的操作
     */
    @Test
    public void  ListTest(){
//        //rpush() 在名为key的list尾部添加数据
        Long rpush = jedis.rpush("key","1","2","3");
        System.out.println(rpush); //返回值为当前list数据的个数
//
        //lpush()  在名为key的list头部添加数据
        Long lpush = jedis.lpush("key","9","8","7");
        System.out.println(lpush); //返回值为当前list数据的个数
//
//        //llen()查询名为key的list的长度
        Long llen = jedis.llen("key");
        System.out.println(llen); //返回值为当前list的长度
//
      //  lrange("key",0 -1)查询当前list,0代表从头部,-1代表从尾部
        List<String> lrange = jedis.lrange("key1",0,-1);
        for (String str : lrange) {
            System.out.println(str);
        }

//        //ltrim(key  0 1)  截取名为key的list,保留起始到终止的元素
        String ltrim = jedis.ltrim("key",0,1);
        System.out.println(ltrim);  //返回值为 ok

//        //lindex(key  2) 返回名为key的list中位于index位置中的值
        String lindex = jedis.lindex("key",0);
        System.out.println(lindex);// 返回值为lindex位置的值

        //lset(key  index   value) 将list中index中的值赋为value
        String lset = jedis.lset("key",0,"999");
        System.out.println(lset);  //返回值为ok


        //lrem(key  count   value)删除count个名为key的value元素
        //当count =0 时删除所有
        //当count >0 时从头部删除count个value元素
        //当count <0 时从尾部删除count个value元素

        //lpop(key)删除并返回名为key的list中的首元素
        String lpop = jedis.lpop("key");
        System.out.println(lpop);

//        //rpop(key)删除并返回名为key的list中的尾元素
        String rpop = jedis.rpop("key");
        System.out.println(rpop);

        //blpop(timeout,key  key1 key2 ... )
        //当timeout = 0 的时候 若遇到keyn不存在或者key对应的list 为空时,命令结束
        //当timeout > 0 则等待timeout秒
        //如果问题没有解决就从key+1开始的list执行pop操作
        List<String> blpop = jedis.blpop(1000,"key","key1","key...");

        // rpoplpush(key  key1)删除key队尾元素,并添加到kye1的头部,并返回该值
        String rpoplpush = jedis.rpoplpush("key","key1");
        System.out.println(rpoplpush);
    }

Jedis对set的操作:

JAVA代码:
  /**
     * Jedis对Set的操作
     */
    @Test
    public void SetTest(){
        //sadd( key  value) 向名为key的set中添加元素value
        Long sadd = jedis.sadd("hello","world");
        Long sadd1 = jedis.sadd("hello","11");

        //srem(key  value) 删除名为key中的元素value
        Long srem = jedis.srem("hello","11");

        //spop(key) 随机删除名为key中的一个元素
        String spop = jedis.spop("key");

        //smove(oldkey  newkey  value) 将value元素从oldkey 移动到newkey
        Long smove= jedis.smove("oldkey","newkey","value");

        //scard(key)返回名为key的set集合中元素的个数
        Long scard = jedis.scard("key");

        //sisnember(key  value) 测试value是否是名为key的set元素的集合
        Boolean sisnember = jedis.sismember("key","value");

        //sinter(key1   key2   key3 ...)返回key1 key2  key3 的交集
        Set<String> sinter = jedis.sinter("key1","key2","key3");

        //sinterstore(newkey  key1  key2   key3  )求key1  key2  key3 的交集,并将结果保存至newkey集合
        Long sinterstore = jedis.sinterstore("newkey","key1","key2","key3");

        //sunion(key1  key2  key3)求key1 key2 key3 的并集
        Set<String> sunion = jedis.sunion("key1","key2","key3");

        //sunionstore(newkey  key1   key2...)求key1 key2的并集,并将结果给newkey
        Long sunionstore = jedis.sunionstore("newkey","key1","key2");

        //sdiff(key1  key2  key3)求key1 key2 key3 的差集
        Set<String> sdiff = jedis.sdiff("key1","key2","key3");

        //sdiffstore(newkey  key1  key2 ...)查询key1 key2的差集,必将结果保存到newkey
        Long  diffstore = jedis.sdiffstore("newkey","key1","key2");

        //smembers(key)返回名称为key的所有元素
        Set<String> smembers = jedis.smembers("key");

        //srandmember(key)随机返回一个名为key的set的元素
        String srandmember = jedis.srandmember("key");

    }


Jedis对Hash的操作:

JAVA代码:
   /**
     * Jedis对hash的操作
     */
    @Test
    public void HashTest(){
        //hest(key,field,value) 向名为key的hash中添加field为键值,value为元素的数据
        Long hset  =jedis.hset("hash","name1","zedong");

        //hget(key,filed) 获取名为key中filed对应的元素
        String hget =jedis.hget("hash","name");
        System.out.println(hget);

        //List<String,Object> hmget(key,filed1,filed2,...)获取名为key中fileds的域
        List<String> hmget = jedis.hmget("hash","name","age");

        //gmset(key,hash)向key中增加hash对象
        Map<String,String> map = new HashMap<>(3);
        map.put("name","lilei");
        map.put("age","13");
        map.put("gender","man");
        String hmset = jedis.hmset("key",map);

        //hincrBy(key,filed,integer)给名为key的filed对应的value加1
        Long hincrBy = jedis.hincrBy("key","filed",1);

       //Boolean hexists("key","field")名为key的hash中是否存在名为name的域
        Boolean hexists = jedis.hexists("hash","name");

        //hdel(key,fields)删除hash中名为field中的域
        Long hdel = jedis.hdel("hash","field1","field2");

        //hlen(key)返回名为key中的hash的geshu
        Long hlen =jedis.hlen("key");

        //hkeys(key)返回名为key的hash中的所有的键
        Set<String> heys = jedis.hkeys("hash");

        //hvals(key)返回名为key中的value的集合
        List<String> hvals = jedis.hvals("hash");

        //hgetall(key) 返回名为key中的key-map 的集合
        Map<String,String> hgetall = jedis.hgetAll("hash");

    }
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值