zoukankan      html  css  js  c++  java
  • Redis系统学习之Java操作RedisAPI(Jedis)

    基础API之Jedis

    • 采用Java操作Redis的客户端,其实就是Jar包
    • 官方推荐使用的

    创建项目

    • new Project
    • image.png
    • image.png
    • image.png
    • 创建完空项目后,会让添加模块
    • image.png
    • image.png
    • 创建一个MAVEN项目
    • image.png
    • image.png
    • image.png
    • 如果JDK没有的话选择一下就好了
    • image.png
    • 默认是没有的,我是选择过了的
    • 最后点击右下角的OK,项目创建完成
    • image.png

    导入Maven依赖

    <!--        redis jedis客户端jar-->
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>3.2.0</version>
            </dependency>
    <!--        fastJson-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.73</version>
            </dependency>

    开放端口(Centos7)

    [root@localhost bin]# firewall-cmd --zone=public --add-port=6379/tcp --permanent
    success
    [root@localhost bin]# firewall-cmd --reload
    success
    [root@localhost bin]#

    编码测试

    • 在JAVA文件夹下创建
    • image.png
    • 暂时不调用远程的Redis,在本地启动一台Windows的,操作参考Redis安装windows安装
    • image.png
    • TestPing.java
    package com.dance.test;
    
    import redis.clients.jedis.Jedis;
    
    public class TestPing {
        public static void main(String[] args) {
            // 创建连接
            Jedis jedis = new Jedis("localhost",6379);
            // 如果需要密码 采用auth方法认证
    //        jedis.auth("密码");
            System.out.println(jedis.ping());
            jedis.close();
    
        }
    }
    
    执行结果
    PONG
    
    Process finished with exit code 0

    常用的API的话,和上面直接在Redis中执行的命令差不多,会有提示,并且在使用的时候可以百度一下

    String

    jedis.flushDB();// 清空选中的库
    jedis.flushAll();// 清空全部库
    jedis.set("username","xiaojiejie");// 添加字符串
    jedis.get("username");// 获取字符串
    jedis.keys("*");// 获取全部key
    jedis.setex("user",10,"zhangsan");// 设置10秒过期
    jedis.append("user","lisi");// 追加
    jedis.set("number","1");
    jedis.incr("number");//累加
    jedis.decr("number");//累减
    jedis.incrBy("number",5);// 设置步长
    jedis.decrBy("number",5);//设置步长
    jedis.setnx("sync","sync");//不存在再设置
    jedis.mset("age","18","notlove","葱花香菜");// 设置多个值
    jedis.mget("age","notlove");// 获取多个值
    jedis.strlen("number");//获取长度
    jedis.substr("user",0,1);// 截取字符串
    jedis.setrange("user",1,"kele");// 替换字符串

    List

    jedis.lpush("list","k1","k2");// 左边添加元素
    jedis.rpush("list","k3","k4");// 右边添加元素
    jedis.lrange("list",0,-1);// 获取全部值
    jedis.lpop("list");//移除并返回左边第一个元素
    jedis.rpop("list");//移除并返回右边第一个元素
    jedis.lindex("list",1);//根据下标获取元素
    jedis.llen("list");//获取集合元素长度
    jedis.lrem("list",1,"k1");// 移除一个值为k1的元素 因为存在重复可以移除多个
    jedis.ltrim("list",0,1);// 截取元素,抛弃其他的
    jedis.rpoplpush("list","list1");//从list右边移除一个添加到list1的左边
    jedis.lset("list",3,"sss");//将索引3的位置的值设置为sss
    jedis.linsert("list", ListPosition.AFTER,"k1","kk");//在k1后面插入kk
    jedis.del("list");// 删除指定的Key

    Set Hash Zset Geo hyperLoglog bitmaps都差不多 就不全写了

    事物(这个还是写一下吧,这个因为是调用返回值的)

    jedis.unwatch();// 取消监视
    jedis.watch("key");// 监视key
    Transaction multi = jedis.multi(); // 开启事物
    multi.set("k1","k2");// 命令入队
    multi.lpush("list2","llll");// 命令入队
    multi.get("list");// 命令入队
    multi.exec();//提交事物
    multi.discard();// 取消事物

    作者:彼岸舞

    时间:202155

    内容关于:Redis

    本文属于作者原创,未经允许,禁止转发

  • 相关阅读:
    排序
    自动生成存储过程的工具
    感悟javascript
    VS.net 2008 beta2 新功能
    北极光合伙人邓锋:要别人跳火坑,你自己先跳
    [转]驱动开发中应该注意的事项
    [转]CryptoAPI的应用(一)概述以及初始化模块
    [转]强制重启N种法
    Different ways of handling IRPs
    [转]分层驱动模型中IRP的传递与完成
  • 原文地址:https://www.cnblogs.com/flower-dance/p/14731133.html
Copyright © 2011-2022 走看看