1.Redis数据类型
- string(字符串):String 是 Redis 最基本的数据类型。
- hash(哈希散列):hash 散列是由字符串类型的 field 和 value 组成的映射表,您可以把它理解成一个包含了多个键值对的集合。由于 Hash 类型具有上述特点,所以一般被用来存储对象。
- list(列表):Redis List 中的元素是字符串类型,其中的元素按照插入顺序进行排列,允许重复插入,最多可插入的元素个数为 2^32 -1 个(大约40亿个),您可以添加一个元素到列表的头部(左边)或者尾部(右边)。
- set(集合):Redis Set 是一个字符串类型元素构成的无序集合。在 Redis 中,集合是通过哈希映射表实现的,所以无论是添加元素、删除元素,亦或是查找元素,它们的时间复杂度都为 O(1)。
- zset(sorted set:有序集合):Redis zset 是一个字符串类型元素构成的有序集合,集合中的元素不仅具有唯一性,而且每个元素还会关联一 个 double 类型的分数,该分数允许重复。Redis 正是通过这个分数来为集合中的成员排序。
2.Redis在Java中的用法
1)安装Redis驱动
如果想在 Java 环境下操作 Redis ,您需要安装相应的 Redis 驱动程序,也就 jedis.jar 包(点击下载),然后将该驱动添加至 Java 的 classpath 中。
如果您的项目是基于 maven 构建的,那么您可以直接导入 maven 坐标,如下所示:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2)连接Redis服务器
安装完 Redis 的驱动程序后,接下来就是连接 Redis 服务器。最简单的连接方式,就是通过 Jedis 对象连接。代码如下:
/引入Redis驱动程序
import redis.clients.jedis.Jedis;
public class RedisJava {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("localhost");
// 如果设置 Redis 服务的密码,需要进行验证,若没有则可以省去
// jedis.auth("123456");
System.out.println("连接成功");
//查看服务是否运行
System.out.println("服务正在运行: "+jedis.ping());
}
}
首先确保 Redis 驱动包引入路径正确的,然后编译并运行 Java 程序,输出结果如下:
连接成功
服务正在运行: PONG
3)Java Redis字符串
Redis String 类型操作,示例如下:
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("webkey", "www.biancheng.net");
// 获取存储的数据并输出
System.out.println("redis 存储的字符串为: "+ jedis.get("webkey"));
}
}
编译并运行上述程序,输出结果如下:
服务器连接成功
redis 存储的字符串为: www.biancheng.net
4)Java Redis列表
Redis List 列表操作,示例如下:
import java.util.List;
import redis.clients.jedis.Jedis;
public class RedisListJava {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("localhost");
System.out.println("服务器连接成功");
//存储数据到列表中
jedis.lpush("website_list", "www.biancheng.net");
jedis.lpush("website_list", "www.baidu.com");
jedis.lpush("website_list", "c.biancheng.net");
// 获取存储的数据并输出
List<String> list = jedis.lrange("website_list", 0 ,2);
for(int i=0; i<list.size(); i++) {
System.out.println("列表元素为: "+list.get(i));
}
}
}
编译并运行上述程序,输出结果如下:
服务器连接成功
列表元素为: c.biancheng.net
列表元素为: www.baidu.com
列表元素为: www.biancheng.net
5)Java Redis键
查看所有 key,示例如下:
import java.util.Iterator;
import java.util.Set;
import redis.clients.jedis.Jedis;
public class RedisKeyJava {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("localhost");
System.out.println("服务器连接成功");
// 获取数据并输出
Set<String> keys = jedis.keys("*");
Iterator<String> it=keys.iterator() ;
while(it.hasNext()){
String key = it.next();
System.out.println(key);
}
}
}
编译并运行上述程序。输出结果如下:
服务器连接成功
webkey
website_list