嗨,这些天我开始研究Redis。 我听说过很多,所以我决定尝试一下。
Redis在其网站上定义为“ 开源高级键值存储”。 它通常被称为数据结构服务器,因为键可以包含字符串,哈希,列表,集合和排序集合 。
在“ Shades of Gray”博客上,我们可以找到关于Redis最适合的示例。 在本文中,我们将不着重于Redis的特性和功能,我们将快速介绍Java Redis客户端Jedis。 Redis命令Jedis api非常简单易学。
我们可以将Jedis下载到其github存储库( https://github.com/xetorthio/jedis )。 这是一个简单的jar,我们可以将其添加到应用程序中并开始使用它。
下面我们可以看到Jedis api的一个简单示例:
import redis.clients.jedis.Jedis;
public class TestJedis {
public static void main(String[] args) {
//Connecting to Redis on localhost
Jedis jedis = new Jedis("localhost");
//adding a new key
jedis.set("key", "value");
//getting the key value
System.out.println(jedis.get("key"));
}
}
在上面的示例中,我们创建了与Redis服务器的连接,一旦连接,我们便使用set方法在数据存储上添加了新密钥,该方法将在Redis上调用SET命令。 这样,我们创建了一个名为“ key”的新键,其值为“ value”。一旦有了该键的值,就可以使用get方法获得其值,该方法在Redis上调用GET命令。
一个非常有用的命令是INCR,它会增加一个键值。 我们可以在下面看到使用此命令的示例:
import redis.clients.jedis.Jedis;
public class IncrTest {
public static void main(String[] args) {
Jedis jedis = new Jedis("localhost");
System.out.println(jedis.get("counter"));
jedis.incr("counter");
System.out.println(jedis.get("counter"));
}
}
Redis的好用例之一是缓存。 我们可以将其用作缓存系统,这非常有用,因为我们可以通过EXPIRE逗号设置给定密钥的到期时间。 我们也可以使用TTL命令获得密钥的TTL 。 下面我们可以看到Jedis api的示例。
import redis.clients.jedis.Jedis;
public class TestJedis {
public static void main(String[] args) throws InterruptedException {
String cacheKey = "cachekey";
Jedis jedis = new Jedis("localhost");
//adding a new key
jedis.set(cacheKey, "cached value");
//setting the TTL in seconds
jedis.expire(cacheKey, 15);
//Getting the remaining ttl
System.out.println("TTL:" + jedis.ttl(cacheKey));
Thread.sleep(1000);
System.out.println("TTL:" + jedis.ttl(cacheKey));
//Getting the cache value
System.out.println("Cached Value:" + jedis.get(cacheKey));
//Wait for the TTL finishs
Thread.sleep(15000);
//trying to get the expired key
System.out.println("Expired Key:" + jedis.get(cacheKey));
}
}
Redis还可以存储其他一些值,如Lists,Hash,set和其他。 下面我们可以看到在Redis中使用Sets的示例。
import redis.clients.jedis.Jedis;
public class TestJedis {
public static void main(String[] args) {
String cacheKey = "languages";
Jedis jedis = new Jedis("localhost");
//Adding a set as value
jedis.sadd(cacheKey,"Java","C#","Python");//SADD
//Getting all values in the set: SMEMBERS
System.out.println("Languages: " + jedis.smembers(cacheKey));
//Adding new values
jedis.sadd(cacheKey,"Java","Ruby");
//Getting the values... it doesn't allow duplicates
System.out.println("Languages: " + jedis.smembers(cacheKey));
}
}
Redis还有许多其他用例,本文旨在对Jedis库进行一些介绍。 下篇再见!
翻译自: https://www.javacodegeeks.com/2013/10/getting-started-with-jedis.html