redis(jedis的简单入门)

redis下载地址(下载最新的如果总是下载失败,可以尝试下载老一点的版本,个人推荐msi安装方式可以安装的时候就把配置搞定)
https://github.com/MicrosoftArchive/redis/releases

在idea创建的maven项目中添加依赖

        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>

然后创建一个 jedisDemo 类,来介绍redis简单的命令,更多命令参见官网:
https://redis.io/commands

import redis.clients.jedis.Jedis;

/**
 * Redis 数据库里面的每个键值对(key-value pair)都是由对象(object)组成的:
 *其中, 数据库键总是一个字符串对象(string object);
 *而数据库键的值则可以是字符串对象、 列表对象(list object)、 哈希对象(hash object)、 集合对象(set object)、 有序集合对象(sorted set object)这五种对象中的其中一种。
 */
public class JedisDemo {
    //辅助函数
    public static void print(int index,Object obj){
        System.out.println(String.format("%d,%s",index,obj.toString()));
    }
    public static void main(String[] args) {
        //new Jedis() 不传参数,默认6379的端口。这里面的9是选择第9个库(自带16个库)
        Jedis jedis = new Jedis("redis://localhost:6379/9");
        jedis.flushDB();//清除当前Jedis所有的key
        // get set 命令
        jedis.set("hello","world");//添加一个kv对
        print(1,jedis.get("hello"));//通过键取出值和Map一个道理
        jedis.setex("timeout",1800,"验证码已失效,请重新获取验证码");//设置键值对的时效,常用语验证码
        //jedis 简单的数值操作: 加 减(ps:可用于页面浏览数的更新)
        jedis.set("pv","100");
        jedis.incr("pv");//pv ->101
        jedis.incrBy("pv",5);//pv ->106
        jedis.decrBy("pv",2);//pv ->104
        print(2,jedis.get("pv"));
        //jedis 中的list使用
        String list = "list";
        jedis.del(list);
        for(int i=0;i<10;++i){
            jedis.lpush(list,"a"+String.valueOf(i));//lpush向list中添加元素,lrange查出来0-3的的元素
        }
        print(4,jedis.lrange(list,0,3));// result: 4,[a9, a8, a7, a6]
        print(4,jedis.llen(list));//计算列表的长度      4,10
        print(4,jedis.lpop(list));//类似于弹栈,将a9    4,a9
        print(4,jedis.lrange(list,2,6));//  4,[a6, a5, a4, a3, a2]
        print(4,jedis.lindex(list,3));// 4,a5
        print(4,jedis.linsert(list, BinaryClient.LIST_POSITION.AFTER,"a4","after"));
        print(4,jedis.linsert(list, BinaryClient.LIST_POSITION.BEFORE,"a4","before"));
        print(4,jedis.lrange(list,0,21));//4,[a8, a7, a6, a5, before, a4, after, a3, a2, a1, a0]

          // hash 可以很方便的为改变象属性
        String hash = "hash";
        jedis.hset(hash,"name","tom");
        jedis.hset(hash,"age","18");
        jedis.hset(hash,"gender","man");
        jedis.hset(hash,"phone","15233333333");
        print(5,jedis.hget(hash,"name"));//tom
        print(5,jedis.hgetAll(hash));//5,{name=tom, gender=man, phone=15233333333, age=18}
        jedis.hdel(hash,"phone");//删除 phone 属性
        print(5,jedis.hexists(hash,"phone"));//5,false 查询phone属性是否存在
        print(5,jedis.hkeys("hash"));//5,[name, gender, age]  获取hash所有的key
        print(5,jedis.hvals("hash"));//5,[tom, 18, man]  获取hash所有的values
        jedis.hsetnx(hash,"name","xx");//如果属性name不存在则创建name属性列否则不再创建
        jedis.hsetnx(hash,"school","njut");
        print(5,jedis.hgetAll(hash));//5,{name=tom, gender=man, school=njut, age=18}

        //set
        String set1 = "set1";
        String set2 = "set2";
        for(int i=0;i<10;++i){
            jedis.sadd(set1,String.valueOf(i));
            jedis.sadd(set2,String.valueOf(i*i));
        }
        print(6,jedis.smembers(set1));//6,[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
        print(6,jedis.smembers(set2));//6,[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
        //集合 并集
        print(6,jedis.sunion(set1,set2));//6,[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 25, 36, 49, 64, 81]
        //集合 差集
        print(6,jedis.sdiff(set1,set2));//6,[8, 2, 3, 5, 6, 7]
        //集合 交集
        print(6,jedis.sinter(set1,set2));
        //判断某元素是否是集合一员
        print(6,jedis.sismember(set1,"1"));//true
        //删除集合中一员
        jedis.srem(set1,"5");
        print(6,jedis.smembers(set1));//6,[0, 1, 2, 3, 4, 6, 7, 8, 9]
        jedis.smove(set2,set1,"25");//将set2中的25移动到set1中
        print(6,jedis.smembers(set1));//6,[0, 1, 2, 3, 4, 6, 7, 8, 9, 25]
        print(6,jedis.smembers(set2));//6,[0, 1, 4, 9, 16, 36, 49, 64, 81]
        //求集合成员的总和, 和count的功能一致
        print(6,jedis.scard(set2));//6,9 


    }
}

原文地址:https://www.cnblogs.com/shuoli/p/7436026.html