代码改变世界

Java版的Redis

2012-06-20 16:12  htc开发  阅读(356)  评论(0编辑  收藏  举报


Redis是一个基于Key-value结构的Nosql数据库,它支持各种常见的数据结构以及非常方便的操作,
与其说它是一个数据库,不如说它是一个保存各种数据结构的服务器。今天闲来没事,用Java集合类
实现了Redis的一些基本功能,算是温习下Java了。

1.Redis入门

Redis的Key键值为字符串,但是Value值支持许多种类型,如String字符串,List链表,Set无序集合,
SortedSet有序集合,甚至是Hash表。

各种数据结构通过不同的存取方法来区分。如Set/Get直接将值存为String,LPush/LPop/LRange将
值存到一个链表中,SAdd/ZAdd则区分了无序和有序集合。

下面我们来看下在Java中使用基本的集合类如何实现这些简单而方便的操作。


2.Java版的Redis

代码的组织结构如下图:





3.简单的客户端


4.实现简单的Twitter


5.需要注意的问题

byte数组的equals和hashcode默认实现比较对象地址的,要借助于Arrays的equals和hashcode方法。

String字符串序列化和反序列化时要注意编码格式的问题,编码解码时应该使用相同的编码。

HashSet上的操作,removeAll补集,retainAll交集,addAll并集。


6.更加强大的Redis

Redis自己实现了各种数据结构,可以非常方便地增删改查,并且效率很高。这里我们只是用
Java来简单的学习了下Redis基本功能,其实Redis还支持很多其他的高级功能,如消息订阅、
数据过期设置、事务、数据持久化。想要进一步学习的话可以试着用Java实现它们。