最近频繁看到redis这项技术,经过多方面了解后,对他进行一个描述:redis是一个内存型的数据库,不同于关系数据库的表结构,它主要存储的是key-value类型,既可用他做缓存技术,也可用于做数据持久化,数据的操作是在内存中处理的,redis会同时把数据存储到硬盘,用于解决高性能的数据解决方案。
Redis类似数据库系统,有独立的服务端和客户端,操作使用NOSQL,常用的命令可以参考《redis入门指南》这本书。
作为java程序员,目前redis的java客户端有两种,jdbc-redis和jredis,从redis官方wiki上以及多种资料上的综合评价,jdbc-redis性能较差,目前主流的Java客户端还是jredis。
下载jredis的jar包,
http://pan.baidu.com/s/1jGgx3eu
下面给我一段测试的代码
public class TestRedis { private JRedis jredis; /** * 建立与服务器连接 * @throws Exception */ public void prepareJRedisClient() throws Exception { System.out.println("** 尝试与服务器建立连接 **"); jredis = new JRedisClient("127.0.0.1",6379); jredis.ping(); System.out.println("** 连接服务器成功 **"); } /** * 断开连接 */ public void closeJredis() { if (jredis != null) { System.out.println("** 断开与服务器的连接 **"); jredis.quit(); } } /** * 测试set/get使用 */ public void testJRedis() { try { jredis.flushdb(); System.out.printf("** 放入值<%s=%s> **\n","foo","bar"); jredis.set("foo", "bar"); byte[] bytes = jredis.get("foo"); String value = DefaultCodec.toStr(bytes); System.out.printf("** 获取到的值:%s **\n",value); } catch (RedisException e) { e.printStackTrace(); } } /** * 测试lpush/rpush/lrange使用 */ public void testSet() { try { jredis.flushdb(); System.out.printf("** 放入集合[%s,%s,%s,%s,%s] **\n","one","two","three","four","five"); jredis.lpush("list", "three"); jredis.lpush("list", "two"); jredis.lpush("list", "one"); jredis.rpush("list", "four"); jredis.rpush("list", "five"); List<byte[]> bytes = jredis.lrange("list", 0, -1); List<String> values = DefaultCodec.toStr(bytes); System.out.println("** 获取到的集合值"+values+" **"); } catch (RedisException e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { TestRedis redisTest = new TestRedis(); redisTest.prepareJRedisClient(); redisTest.testJRedis(); redisTest.testSet(); redisTest.closeJredis(); } }