Redis 实战 ---- Java 使用 Redis

时间:2021-07-20 20:31:05
零.安装与测试
  1. Windows上安装 Redis
    Redis的官网为redis.io,安装Redis到Windows上,可以解压附件的redis.zip到本地的任意路径下(如:e盘)。
    • 启动Redis服务器端
      使用cmd.exe工具进入解压的redis文件夹,输入如下指令即可使用配置文件redis.windows.conf中指定的参数打开Redis服务器端
E:\redis>redis-server.exe redis.windows.conf[3136] 01 Aug 15:30:18.916 # Creating Server TCP listening socket 127.0.0.1:6379: bind: No error


2. 使用 Java 测试安装是否成功maven pom 文件引入依赖:
<!-- jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
<type>jar</type>
<scope>compile</scope>
</dependency>


测试代码:
package com.wenniuwuren.redis;

import redis.clients.jedis.Jedis;

public class JedisUtil {


public static void main(String[] args) {
Jedis jedis = new Jedis("localhost");
jedis.set("foo", "bar");
String value = jedis.get("foo");
System.out.println("value=" + value);
}
}


测试结果:value=bar

一.Redis Java String(字符串) 实例
向 Redis 服务器插入一条 key/value,打印 value 结果,然后删除
Jedis jedis = new Jedis("localhost");
jedis.set("foo", "bar");
String value = jedis.get("foo");
System.out.println("value=" + value);

jedis.del("foo");
System.out.println("value=" + jedis.get("foo"));

测试结果:value=barvalue=null

二. Redis Java List(列表) 实例
public static void main(String[] args) {
Jedis jedis = new Jedis("localhost");
jedis.set("foo", "bar");
String value = jedis.get("foo");
System.out.println("value=" + value);

jedis.del("foo");
System.out.println("value=" + jedis.get("foo"));

// 存储数据到列表
jedis.lpush("tutorial-list", "Redis");
jedis.lpush("tutorial-list", "Mongodb");
jedis.lpush("tutorial-list", "Mysql");
jedis.rpush("tutorial-list", "Memcached");
// 输出列表数据
List<String> list = jedis.lrange("tutorial-list", 0 ,1000);
for(int i=0; i<list.size(); i++) {
System.out.println("Stored string in redis:: "+list.get(i));
}


}

测试结果:value=barvalue=nullStored string in redis:: MysqlStored string in redis:: MongodbStored string in redis:: RedisStored string in redis:: Memcached

三. Redis Java Set(集合) 实例
public static void main(String[] args) {
Jedis jedis = new Jedis("localhost");

// 将给定元素添加到集合
jedis.sadd("setTest", "a");
jedis.sadd("setTest", "b");
jedis.sadd("setTest", "a");

// 检查给定元素是否存在于集合中
System.out.println("a is exist in setTest ?" + jedis.sismember("setTest", "a"));

Set set = jedis.smembers("setTest"); // 返回集合包含的所有元素
Iterator iterator = set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}

// 如果给定的元素存在于集合中,那么移除这个元素
jedis.srem("setTest", "a");
Set finalSet = jedis.smembers("setTest");
Iterator iterator1 = finalSet.iterator();
System.out.println("删除后集合中元素...");
while (iterator1.hasNext()) {
System.out.println(iterator1.next());
}

}

执行结果:a is exist in setTest ?trueab删除后集合中元素...b


四. Redis Java Hash(散列) 实例
public static void main(String[] args) {
Jedis jedis = new Jedis("localhost");

// 设置键值对
jedis.hset("hashTest", "a", "b");
jedis.hset("hashTest", "b", "c");
jedis.hset("hashTest", "a", "b");

// 获取 hash 中的所有键值对
Map map = jedis.hgetAll("hashTest");
// 根据 key 获取 value
System.out.println(map.get("a"));
System.out.println(map.get("b"));
System.out.println(map.get("c"));

System.out.println("删除后...");

jedis.hdel("hashTest", "a");
Map map1 = jedis.hgetAll("hashTest");
System.out.println(map1.get("a"));
System.out.println(map1.get("b"));
System.out.println(map1.get("c"));
}

测试结果:bcnull删除后...nullcnull

五. Redis Java ZSET(有序集合) 实例
public static void main(String[] args) {
Jedis jedis = new Jedis("localhost");

// 将一个带有给定分值的成员添加到有序集合里面
jedis.zadd("zsetTest", 10, "a");
jedis.zadd("zsetTest", 20, "b");

// 获取有序集合在给定分值范围内的所有元素
Set zset = jedis.zrangeByScore("zsetTest", 5, 10);
Iterator iterator = zset.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
System.out.println("........");
// 根据分值的排序顺序,获取有序集合在给定位置范围内的所有元素
Set zset1 = jedis.zrange("zsetTest", 0, -1);
Iterator iterator1 = zset1.iterator();
while (iterator1.hasNext()) {
System.out.println(iterator1.next());
}

}

执行结果:a........ab