七天玩转Redis | Day5 Java操作Redis

Posted diviner_s

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了七天玩转Redis | Day5 Java操作Redis相关的知识,希望对你有一定的参考价值。

文章目录

使用JAVA操作Redis

在实际开发中,并不是在Redis客户端中操作,往往是借助JAVA操作Redis。这里学习几个类。

Jedis类

Jedis类驱动jar包下载地址:
https://mvnrepository.com/artifact/redis.clients/jedis/4.0.1

jar包是在Maven仓库中下载的,这里涵盖了Java开发几乎所有的jar包和版本,如果有其他Java开发得jar包都可以在这里下载使用。

Jedis类的使用
测试Redis是否能链接

创建一个Jedis类并调用ping()方法。

    public static void main(String[] args) throws InterruptedException 
//        新建Jedis类对象
        Jedis jedis = new Jedis("127.0.0.1", 6379);
//       测试Redis连接
        System.out.println("redis连接测试:" + jedis.ping());
    

运行结果如下:

redis连接测试:PONG

Redis数据操作

举例举例:

    public static void main(String[] args) throws InterruptedException 
//        新建Jedis类对象
        Jedis jedis = new Jedis("127.0.0.1", 6379);
//       测试Redis连接
        System.out.println("redis连接测试:" + jedis.ping());
//        判断某个键是否存在
        System.out.println("判断某个键是否存在:" + jedis.exists("mykey"));
//        获取所有的键
        Set<String> keys = jedis.keys("*");
        System.out.println(keys);
 
//        根据key去删除键值对
        System.out.println("删除键" + jedis.del("mykey"));
 
 
        /**
         * String类型
         */
//        设置一个键值对
        jedis.set("mykey1", "myValue1");
        jedis.set("mykey2", "myValue2");
        jedis.set("mykey3", "myValue3");
//        根据索引获取一个数据的值
        System.out.println("得到的数值为:" + jedis.get("mykey2"));
        System.out.println("获取多个键值对:" + jedis.mget("mykey1", "mykey2", "mykey3"));
        System.out.println("获取mykey1的数据的长度:" + jedis.strlen("mykey1"));
        System.out.println("返回key中字符串值的子串:" + jedis.getrange("mykey2", 1, 5));
        System.out.println("字符串追加:" + jedis.append("mykey3", "hello"));
        System.out.println("获取到mykey3的值:" + jedis.get("mykey3"));
 
        /**
         * Hash类型
         */
//        设置一个Hash数据
        Map<String, String> valueMap = new HashMap<>();
        valueMap.put("name", "huixiaoyuan");
        valueMap.put("sex", "男");
        valueMap.put("age", "3");
        System.out.println("设置一个Hash数据" + jedis.hmset("myHash", valueMap));
        System.out.println("获取指定哈希表中所有的字段和值:" + jedis.hgetAll("myHash"));
        System.out.println("获取存储在哈希表中指定字段的值:" + jedis.hget("myHash", "name"));
        System.out.println("删除一个或多个哈希表字段:" + jedis.hdel("myHash", "sex"));
        System.out.println("获取哈希表中字段的数量:" + jedis.hlen("myHash"));
 
        /**
         * List类型
         */
        System.out.println("将一个或多个元素插入列表表头:" + jedis.lpush("myList", "l1", "l2", "l3"));
        System.out.println("将一个或多个元素插入列表尾部:" + jedis.rpush("myList", "l4"));
        System.out.println("获取列表长度:" + jedis.llen("myList"));
        System.out.println("通过索引获取列表中的元素:" + jedis.lindex("myList", 2));
        System.out.println("移除并获取列表第一个元素:" + jedis.lpop("myList"));
        System.out.println("移除并获取列表最后一个元素:" + jedis.rpop("myList"));
 
 
        /**
         * Hash类型
         */
        System.out.println("设置一个Hash数据" + jedis.hmset("myHash", valueMap));
        System.out.println("获取指定哈希表中所有的字段和值:" + jedis.hgetAll("myHash"));
        System.out.println("获取存储在哈希表中指定字段的值:" + jedis.hget("myHash", "name"));
        System.out.println("删除一个或多个哈希表字段:" + jedis.hdel("myHash", "sex"));
        System.out.println("获取哈希表中字段的数量:" + jedis.hlen("myHash"));
 
        /**
         * Set类型
         */
        System.out.println("向集合中添加一个或多个成员:" + jedis.sadd("mySet","s1","s2","s3"));
        System.out.println("向集合中添加一个或多个成员:" + jedis.sadd("mySet2","s3","s4","s5"));
        System.out.println("获取集合中成员的个数:" + jedis.scard("mySet"));
        System.out.println("返回第一个集合与其他集合之间的差异:" + jedis.sdiff("mySet","mySet2"));
        System.out.println("返回集合中的所有元素:" + jedis.smembers("mySet"));
 
 
        /**
         *ZSet类型
         */
        System.out.println("向有序集合中添加一个或多个成员:" + jedis.zadd("myZset",1,"m1"));
        System.out.println("向有序集合中添加一个或多个成员:" + jedis.zadd("myZset",2,"m2"));
        System.out.println("向有序集合中添加一个或多个成员:" + jedis.zadd("myZset",3,"m3"));
        System.out.println("获取有序集合的成员数:" + jedis.zcard("myZset"));
        System.out.println("计算有序集合中指定区间分数的成员数:" + jedis.zcount("myZset",0,2));
        System.out.println("移除有序集合中的一个或多个元素:" + jedis.zrem("myZset","m2"));
 
    

运行结果:

redis连接测试:PONG
判断某个键是否存在:true
[myhash, myset2, n1, mynum3, mynum2, k1, mynum4, k2, Money_Divienr, k3, k4, mynum1, mykey, china:city, myset, outmoney, money, myzset, mylist, outMoney_Diviner, mykey3, Money_Diviner]
删除键1
得到的数值为:myValue2
获取多个键值对:[myValue1, myValue2, myValue3]
获取mykey1的数据的长度:8
返回key中字符串值的子串:yValu
字符串追加:13
获取到mykey3的值:myValue3hello
设置一个Hash数据OK
获取指定哈希表中所有的字段和值:name=huixiaoyuan, age=3, sex=男
获取存储在哈希表中指定字段的值:huixiaoyuan
删除一个或多个哈希表字段:1
获取哈希表中字段的数量:2
将一个或多个元素插入列表表头:3
将一个或多个元素插入列表尾部:4
获取列表长度:4
通过索引获取列表中的元素:l1
移除并获取列表第一个元素:l3
移除并获取列表最后一个元素:l4
设置一个Hash数据OK
获取指定哈希表中所有的字段和值:name=huixiaoyuan, age=3, sex=男
获取存储在哈希表中指定字段的值:huixiaoyuan
删除一个或多个哈希表字段:1
获取哈希表中字段的数量:2
向集合中添加一个或多个成员:3
向集合中添加一个或多个成员:3
获取集合中成员的个数:3
返回第一个集合与其他集合之间的差异:[s1, s2]
返回集合中的所有元素:[s3, s2, s1]
向有序集合中添加一个或多个成员:1
向有序集合中添加一个或多个成员:1
向有序集合中添加一个或多个成员:1
获取有序集合的成员数:3
计算有序集合中指定区间分数的成员数:2
移除有序集合中的一个或多个元素:1

RedisTempate类

Jedis一般可以用于没有使用spring系列框架的场景,而RedisTempate则多用于企业利用框架的实际开发中。

RedisTemplate提供的五种操作数据类型:

  • redisTemplate.opsForValue(); 对应String类型操作
  • redisTemplate.opsForHash(); 对应Hash类型操作
  • redisTemplate.opsForList(); 对应List类型操作
  • redisTemplate.opsForSet(); 对应Set类型操作
  • redisTemplate.opsForZSet(); 对应ZSet类型操作

StringRedisTemplate类

StringRedisTemplate对应了操作五种数据类型的方法,而且操作和stringRedis一样,

  • stringRedisTemplate.opsForValue(); 对应String类型操作
  • stringRedisTemplate.opsForHash(); 对应Hash类型操作
  • stringRedisTemplate.opsForList(); 对应List类型操作
  • stringRedisTemplate.opsForSet(); 对应Set类型操作
  • stringRedisTemplate.opsForZSet(); 对应ZSet类型操作

打卡第五天啦,继续加油~~~~

以上是关于七天玩转Redis | Day5 Java操作Redis的主要内容,如果未能解决你的问题,请参考以下文章

七天玩转Redis | Day5 Java操作Redis

七天玩转Redis | Day5Java操作Redis

七天玩转Redis | Day5Java操作Redis

七天玩转Redis | Day5Java操作Redis

七天玩转Redis | Day5Java操作Redis

七天玩转Redis | Day4 Redis事务操作