籍Redis开发与实战利用实践去深入理解(关于redis方面的书)
Redis
Redis作为一种高性能key-value存储系统, 在缓存、数据库, 分布式存储、消息队列等应用场景中都可以用到。其实, 如果我们想要深入理解Redis,动手实战是最好的学习方法。下面介绍几种常见的Redis实践例子来展示Redis作为一种高性能存储产品的强大能力。
首先是利用Redis缓存文件的例子:
有的网站的访问量特别大,每次都要去数据库查询文件,开销很大。最常用的办法就是使用Redis缓存,将所需要的文件存入Redis,将文件读取次数减到最少。这样系统负载就会减轻,下面是一个实现示例:
//将文件存入Redis
public static void setFile(String filename,String content){ Jedis jedis = new Jedis("127.0.0.1",6379);
jedis.set(filename,content); //设置过期时间 20s
jedis.expire(filename,20); jedis.close();
}//从Redis获取文件
public static String getFile(String filename){ Jedis jedis = new Jedis("127.0.0.1",6379);
String content = jedis.get(filename); jedis.close();
return content;}
使用Redis来实现消息的订阅与发布:
在一些系统中,消息总线一直是系统中必不可少的部分,通常情况下我们会采用RabbitMQ,ActiveMQ等消息总线来实现。但是Redis也提供了实现消息总线的功能,下面是一个代码示例:
//订阅者
public static void subscribe(String channel){ Jedis jedis = new Jedis("127.0.0.1",6379);
jedis.subscribe(new JedisPubSub(){ public void onMessage(String channel,String message){
System.out.println("receive message:" + message); }
},channel);
jedis.close();}
//发布者public static void publish(String channel,String message){
Jedis jedis = new Jedis("127.0.0.1",6379); jedis.publish(channel,message);
jedis.close();}
使用Redis我们还可以实现分布式ID的生成服务:
在大数据的场景下,很多系统可能需要毫秒级的ID,因为一般的数据库ID自增是5000的整数倍,可能不够精确。这时候使用Redis就可以准确的实现这个需求,简单代码如下:
public long getId(){
Jedis jedis = new Jedis("127.0.0.1",6379); long id = jedis.incr("id");
jedis.close(); return id;
}
以上分享了几个Redis开发与实战的例子,相信大家可以利用实践来更好的理解Redis,从而发挥出Redis真正的强大能力。
相关文章