Redis是一种开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息代理。Redis支持多种类型的数据结构,包括字符串(String)、哈希(Hashes)、列表(Lists)、集合(Sets)以及有序集合(Sorted Sets)。

  1. 字符串(String):最简单的类型。它可以包含任何数据,例如jpg图片或者序列化对象。
import redis.clients.jedis.Jedis;

public class RedisStringJava {
    public static void main(String[] args) {
        //连接本地redis服务
        Jedis jedis = new Jedis("localhost");
        System.out.println("连接成功");
    
        //设置redis字符串数据
        jedis.set("runoobkey", "www.runoob.com");
    
         // 获取存储在键为 "runoobkey" 下面的值.
         System.out.println("redis 存储在键为 runoobkey 的值是: "+ jedis.get("runoobkey"));
    }
}
  1. 哈希(Hashes):Redis hash 是一个键值对集合。 Redis hash 是一个 string 类型 的 field 和 value 的映射表。
import redis.clients.jedis.Jedis;

public class RedisHashJava {
    public static void main(String[] args) {
       //连接本地redis服务 
       Jedis jedis = new Jedis("localhost"); 
       System.out.println("\nConnection Successful"); 

      // 存储hash map in redis cache 
      Map<String, String> userMap = new HashMap<>(); 
      userMap.put(“username”, “John”);  
      userMap.put(“password”, “password123”); 
      jedis.hmset("user", userMap); 

      // 获取存储在哈希表中的值
      List<String> values = jedis.hmget("user", "username", "password"); 
      for (String value : values) { 
         System.out.println(value);  
       }  
    }  
}
  1. 列表(Lists):Redis 列表是简单的字符串列表,按照插入顺序排序。
import redis.clients.jedis.Jedis;

public class RedisListJava {
    public static void main(String[] args) {
        //连接本地redis服务
        Jedis jedis = new Jedis("localhost");
        System.out.println("\nConnection Successful");
    
         //存储数据到列表中
         jedis.lpush("tutorial-list", "Redis");
         jedis.lpush("tutorial-list", "Mongodb");
     
          // 获取存储在键为"tutorial-list"下面的值.
          List<String> list = jedis.lrange("tutorial-list" , 0 ,5);
          for(int i=0; i<list.size(); i++) {
            System.out.println("\nStored string in redis:: "+list.get(i));
           }
    }
}
  1. 集合(Sets):Redis Set 是 string 类型的无序集合。它是通过哈希表实现的,添加、删除、查找复杂度都是O(1)。
import redis.clients.jedis.Jedis;

public class RedisSetJava {
   public static void main(String[] args) {   
       //连接本地redis服务   
       Jedis  jedi s= new J edis ("localhost");   
       System .out .println ("\nConnection Successful");   

       //存储数据到集合中   
       jedis.sadd("tutorial-set", "Redis");   
       jedis.sadd("tutorial-set", "Mongodb");   

        // 获取存储在键为"tutorial-set"下面的值.  
        Set<String> set = jedis.smembers("tutorial-set");
        Iterator<String> it = set.iterator();
    
         while(it.hasNext()){
            System.out.println(it.next());
         }
    }
}
  1. 有序集合(Sorted Sets):Redis sorted sets 和 sets 一样也是 string 类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大排序。
import redis.clients.jedis.Jedis;

public class RedisSortedSetJava {
    public static void main(String[] args) {
      //连接本地redis服务
      Jedis jedis = new Jedis("localhost");
      System.out.println("\nConnection Successful");

     Map<String, Double> scores = new HashMap<>();
     scores.put(“PlayerOne”, 3000.0);
     scores.put(“PlayerTwo”, 1500.0);
   
     jedis.zadd(“playerScore”, scores);

    Set<String> setValues =j edis.zrange (“playerScore” , 0 , -1); 
   for (String value :setValues ) { 
   System .out .println (value);  
   }  
}

以上就是Redis支持五种数据类型,并且通过Java代码实现了对这五种类型操作,希望对你有所帮助。

云服务器推荐

蓝易云国内/海外高防云服务器推荐


海外免备案云服务器链接:www.tsyvps.com

蓝易云香港五网CN2 GIA/GT精品网络服务器。拒绝绕路,拒绝不稳定。


百度搜索:蓝易云

蓝易云是一家专注于香港及国内数据中心服务的提供商,提供高质量的服务器租用和云计算服务、包括免备案香港服务器、香港CN2、美国服务器、海外高防服务器、国内高防服务器、香港VPS等。致力于为用户提供稳定,快速的网络连接和优质的客户体验。
最后修改:2023 年 10 月 14 日
如果觉得我的文章对你有用,请随意赞赏