嗨,这些天我开始研究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 localhostJedis jedis = new Jedis("localhost");//adding a new keyjedis.set("key", "value");//getting the key valueSystem.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 keyjedis.set(cacheKey, "cached value");//setting the TTL in secondsjedis.expire(cacheKey, 15);//Getting the remaining ttlSystem.out.println("TTL:" + jedis.ttl(cacheKey));Thread.sleep(1000);System.out.println("TTL:" + jedis.ttl(cacheKey));//Getting the cache valueSystem.out.println("Cached Value:" + jedis.get(cacheKey));//Wait for the TTL finishsThread.sleep(15000);//trying to get the expired keySystem.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 valuejedis.sadd(cacheKey,"Java","C#","Python");//SADD//Getting all values in the set: SMEMBERSSystem.out.println("Languages: " + jedis.smembers(cacheKey));//Adding new valuesjedis.sadd(cacheKey,"Java","Ruby");//Getting the values... it doesn't allow duplicatesSystem.out.println("Languages: " + jedis.smembers(cacheKey));}}
Redis还有许多其他用例,本文旨在对Jedis库进行一些介绍。 下篇再见!
翻译自: https://www.javacodegeeks.com/2013/10/getting-started-with-jedis.html