Redis是一种开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息代理。Redis支持多种类型的数据结构,包括字符串(String)、哈希(Hashes)、列表(Lists)、集合(Sets)以及有序集合(Sorted Sets)。
- 字符串(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"));
}
}
- 哈希(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);
}
}
}
- 列表(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));
}
}
}
- 集合(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());
}
}
}
- 有序集合(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精品网络服务器。拒绝绕路,拒绝不稳定。