Java使用Redis

时间:2022-11-24
本文章向大家介绍Java使用Redis,主要内容包括1.下载 jedis.jar、2. 四个数据类型以及键操作、使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1.下载 jedis.jar

2. 四个数据类型以及键操作

public class RedisTest {


    public static void main(String[] args) throws InterruptedException {
        RedisTest redisTest = new RedisTest();
        redisTest.KeyTest();

    }
    public void StringTest(){
        //连接本地的 Redis 服务
        Jedis jedis = new Jedis("localhost");
        //查看服务是否运行
        System.out.println("Server is running: "+jedis.ping());

        //String

        //添加
        jedis.set("food","fish");
        System.out.println(jedis.get("food"));
        //修改
        jedis.append("food","apple");
        System.out.println(jedis.get("food"));
        //覆盖
        jedis.set("food","fish2");
        System.out.println(jedis.get("food"));
        //修改
        jedis.del("food");
        System.out.println(jedis.get("food"));

        //同时设置
        jedis.mset("name","lwx","age","12");
        System.out.println(jedis.mget("name","age"));

    }
    public void MapTest(){
        Jedis jedis = new Jedis("localhost");
        System.out.println("Server is running: "+jedis.ping());

        Map<String,String> map = new HashMap<>();
        map.put("name", "lwx");
        map.put("age","12");
        jedis.hmset("map",map);

        List<String> name = jedis.hmget("map","name");
        System.out.println(name);

        System.out.println(jedis.hmget("map","age"));
        System.out.println(jedis.hlen("map"));//map键的个数
        System.out.println(jedis.exists("map"));//是否存在key为map的记录
        System.out.println(jedis.hkeys("map"));//返回map对象中的所有key
        System.out.println(jedis.hvals("map"));//返回map对象中的所有value

        Iterator<String> iter=jedis.hkeys("map").iterator();
        while (iter.hasNext()){
            String key = iter.next();
            System.out.println(key+":"+jedis.hmget("map",key));
        }
        //删除
        jedis.hdel("map","name");
    }

    public void ListTest() {
        //连接本地的 Redis 服务
        Jedis jedis = new Jedis("localhost");
        //查看服务是否运行
        System.out.println("Server is running: " + jedis.ping());

        // List
        jedis.lpush("list", "Redis");
        jedis.lpush("list", "Mongodb");
        jedis.lpush("list", "Mysql");
        // 获取存储的数据并输出
        List<String> list = jedis.lrange("list", 0, 5);
        for (int i = 0; i < list.size(); i++) {
            System.out.println("Stored string in redis:: " + list.get(i));
        }
    }

    public void SetTest(){
        Jedis jedis = new Jedis("localhost");

        jedis.sadd("sname","meepo");
        jedis.sadd("sname","dota");
        jedis.sadd("sname","poofu");
        jedis.sadd("sname","noname");

        //移除
        jedis.srem("sname","noname");

        System.out.println(jedis.smembers("sname"));//获取所有加入的member
        System.out.println(jedis.sismember("sname", "meepo"));//判断 member 是否是集合的元素
        System.out.println(jedis.srandmember("sname"));//返回随机一个member
        System.out.println(jedis.scard("sname"));//返回集合的元素个数
    }

    public void KeyTest() throws InterruptedException{
        Jedis jedis = new Jedis("localhost");
        //返回当前库中所有的key *通配符
        System.out.println(jedis.keys("*"));

        //删除key为sanmdde的对象  删除成功返回1 删除失败(或者不存在)返回 0
        System.out.println(jedis.del("sanmdde"));
        //返回给定key的有效时间,如果是-1则表示永远有效
        System.out.println(jedis.ttl("sname"));
        //通过此方法,可以指定key的存活(有效时间) 时间为秒
        jedis.setex("timekey", 10, "min");
        Thread.sleep(5000);//睡眠5秒后,剩余时间将为<=5
        System.out.println(jedis.ttl("timekey"));   //输出结果为5

        //jedis 排序
        //注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的)
        jedis.del("a");//先清除数据,再加入数据进行测试
        jedis.rpush("a", "1");
        jedis.lpush("a","6");
        jedis.lpush("a","3");
        jedis.lpush("a","9");
        System.out.println(jedis.lrange("a",0,-1));// [9, 3, 6, 1]
        System.out.println(jedis.sort("a")); //[1, 3, 6, 9]  //输入排序后结果
        System.out.println(jedis.lrange("a",0,-1));
    }
}

原文地址:https://www.cnblogs.com/lwx11111/p/16922956.html