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

redis02

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

redis02

一、 jedis的简介

        jedis 是redis java连接工具 ,引入jar包后,就可以使用java代码操作redis。

二、redis修改远程可以连接

        vim /usr/redis/bin/redis.conf 

        :69 bind 127.0.0.1

         把当前redis实例和本机127.0.0.1进行绑定,只能本机客户端进行连接

         如果想让其他任何机器进行访问该实例,需要把该实例与当前主机IP进行绑定

        :69 bind 192.168.140.41

从新启动服务

 使用客户端直接连接时出错

/usr/redis/bin/redis-server  /usr/redis/bin/redis.conf 

连接要换为连接IP地址:

/usr/redis/bin/redis-cli -h 192.168.140.41

 

2.2、 创建项目引入jar,编写代码

 

  redis.clients
  jedis
  4.2.2
   

具体代码:

     1、进行字符串操作

public class ConnectRedisTest {
    public static void main(String[] args) {
        // 查看源码  会看到使用host和post的构造
        Jedis jedis = new Jedis("192.168.140.41", 6379);
        // 测试是否可以联通
        String pingResult = jedis.ping();
        System.out.println("是否联通:"+pingResult);
        if (!"PONG".equals(pingResult)){
            System.out.println("联不通");
            return;
        }else {
            System.out.println("可以联通");
        }

        // 查询
        Set keyList = jedis.keys("*");
        System.out.println("已经存储的key为:");
        for (String key : keyList) {
            System.out.print(key+"t");
        }
        System.out.println();
        System.out.println("-----------------------------------------");

        // 进行字符串操作
        jedis.set("aaa","111");
        String aaa = jedis.get("aaa");
        System.out.println("redis存储的字符串为:"+jedis.get("aaa"));

        // 添加多个元素
        String mset = jedis.mset("bbb", "222", "ccc", "333", "ddd", "444");

        System.out.println("====================================");

        // 获取多个key的value值
        List values = jedis.mget("aaa", "bbb", "ccc", "ddd");
        for (String value : values) {
            System.out.print(value+"t");
        }
        System.out.println("n"+"==================================");

        // 指定kay的value值递增
        int i=0;
        while (i<10){
            long incr = jedis.incr(aaa);
            System.out.print(incr+"t");
            i++;
        }
        System.out.println();
        // 指定kay的value值递减
//        while (i<10){
//            long decr = jedis.decr(aaa);
//            System.out.print(decr+"t");
//            i++;
//        }
    }
}

打印结果:

2、对 hashs 散列类型进行操作

        // 单个存值
        jedis.hset("mapTest","a","111");
        // 单个取值
        System.out.println("散列hashmap取值:"+jedis.hget("mapTest", "a"));

        // 添加多个值
        Map hashMap = new HashMap<>();
        hashMap.put("b","222");
        hashMap.put("c","333");
        hashMap.put("d","444");
        jedis.hmset("mapTest", hashMap);
        // 获取多个值
        List valuesMap = jedis.hmget("mapTest", "a", "b", "c", "d");
        for (String value : valuesMap) {
            System.out.print("散列hashmap取多值:"+value+"t");
        }
        System.out.println();


        // 获取key中多个filed属性值
        Map map = jedis.hgetAll("mapTest");
        for (Map.Entry entry : map.entrySet()) {
            System.out.println("key为:"+entry.getKey()+"tvalue为:"+entry.getValue());
        }
        // 获取key中的所有filed
        Set mapTest = jedis.hkeys("mapTest");
        System.out.print("fields为:");
        for (String s : map.keySet()) {
            System.out.print(s+"t");
        }
        // 获取key中的所有filed的value值
        List mapTest1 = jedis.hvals("mapTest");
        System.out.println("nvalue为");
        for (String s : mapTest1) {
            System.out.print(s+"t");
        }

        // 获取key的长度
        long mapTest2 = jedis.hlen("mapTest");
        System.out.println("nmapTest的长度为:"+mapTest2);
        //  删除kay中的某个filed
        long hdel = jedis.hdel("mapTest", "d");

打印结果:

3、 lists 列表类型的操作

        // 进行list操作
        String flushDB = jedis.flushDB();
        // 添加元素
        long lpush = jedis.lpush("listTest", "aa", "11", "bb", "22");
        System.out.println("成功添加:"+lpush+"条数据");
        System.out.print("遍历值为:");
        for (long l = 0; l < jedis.llen("listTest"); l++) {
            System.out.print("下标"+l+"的值为:"+jedis.lindex("listTest",l)+"t");
        }

        // 在尾部添加元素
        jedis.rpush("listTest","cc","33");
        System.out.print("n遍历值为:");
        for (long l = 0; l < jedis.llen("listTest"); l++) {
            System.out.print("下标"+l+"的值为:"+jedis.lindex("listTest",l)+"t");
        }

        // 移除并返回key的第一个元素
        String listTest = jedis.lpop("listTest");
        System.out.println("n删除第一个元素"+listTest);

        // 移除并返回key的最后一个元素
        String listTest1 = jedis.rpop("listTest");
        System.out.println("删除最后一个元素"+listTest1);

        // 获取key的长度
        System.out.println("key的长度为:"+jedis.llen("listTest"));

打印结果:

 4、sets 集合类型的操作

        // 添加元素
        long sadd = jedis.sadd("setTest", "aaa", "111", "bbb", "222");
        System.out.println("添加 "+sadd+"条数据");

        // 获取key中存储的所有元素值
        Set setTest = jedis.smembers("setTest");
        System.out.print("储存的元素值为:");
        for (String s : setTest) {
            System.out.print(s+"t");
        }

        // key中是否含有 value  有返回1 没有返回0
        boolean sismember = jedis.sismember("setTest", "aaa");
        System.out.println("n是否含有该元素:"+sismember);

        // 获取集合key的长度
        System.out.println("setTest的长度为:"+jedis.scard("setTest"));

        // 随机获取 key 中的 x 个元素
        List setTest1 = jedis.srandmember("setTest", 2);
        System.out.println("随机获取2个元素:"+setTest1);

        jedis.sadd("setTest2", "aaa", "333", "ccc", "222");
        //  获取 key1 和 key2的共有元素
        Set sinter = jedis.sinter("setTest", "setTest2");
        System.out.println("共有元素为:"+sinter);

        // 返回 key2 与 key3 共有元素的个数  并储存在集合key1中
        long sinterstore = jedis.sinterstore("setTest3", "setTest", "setTest2");
        System.out.println("有几个共同元素:"+sinterstore);
        System.out.println("setTest3存入的共同值:"+jedis.smembers("setTest3"));

        // 移除 key 中的一个或多个成员元素,不存在的成员元素会被忽略
        long srem = jedis.srem("setTest", "aaa", "fgfg");
        System.out.println("移除了:"+srem);

        // 移除 key 中的一个或多个随机元素,移除后会返回移除的元素
        Set setTest2 = jedis.spop("setTest2", 2);
        System.out.println("随机移除2个元素"+setTest2);

打印结果:

5、sorted sets 有序集合类型

        // 添加单条数据
        long zadd = jedis.zadd("sortedSets", 11.1, "lisi");
        System.out.println("成功添加"+zadd);
        // 添加多条
        Map map1 = new HashMap<>();
        map1.put("zhangsan",22.2);
        map1.put("zhaoliu",33.3);
        map1.put("wangwu",44.4);
        long sortedSets = jedis.zadd("sortedSets", map1);
        System.out.println("成功添加多条:"+sortedSets);

        // 返回 key 中是否含有元素并删除   有返回1  没有返回0
        long zrem = jedis.zrem("sortedSets", "zhaoliu");
        System.out.println("是否有这个元素:"+zrem);

        // 返回 key 中元素个数
        long sortedSets1 = jedis.zcard("sortedSets");
        System.out.println("sortedSets中有"+sortedSets1+"个元素");

        // 返回 key 中分数在  x--y 这个区间的元素个数
        long sortedSets2 = jedis.zcount("sortedSets", 0, 60);
        System.out.println("这个区间的元素个数为:"+sortedSets2);

        //  返回 key 中  数字在 b--c 这个范围的元素
        List list = jedis.zrangeByScore("sortedSets", 0, 60);
        System.out.println(list);

 结果打印:

 

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

版权所有 (c)2021-2022 wk8.com.cn

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