通过前一篇《redis的简单使用》的简单介绍,本篇主要阐述Jedis对redis的五大类型的操作:字符串、列表、散列、集合、有序集合。
JedisUtil
这里的测试用例采用junit4进行运行,准备代码如下:
private static final String ipAddr = "10.10.195.112"; |
其中JedisUtil是对jedis做的简单封装,代码如下:
import org.apache.log4j.Logger; |
键操作
@Test public void testKey() throws InterruptedException |
输出结果:
清空数据:OK |
字符串操作
在Redis里面,字符串可以存储三种类型的值:
- 字节串(byte string)
- 整数
- 浮点数
字节串
@Test public void testString() throws InterruptedException |
输出结果:
===========增加数据=========== |
memcached和redis同样有append的操作,但是memcached有prepend的操作,redis中并没有。
整数和浮点数
@Test public void testNumber() |
输出结果:
key1的值:1 |
在redis2.6或以上版本中有这个命令:incrbyfloat,即将键存储的值加上浮点数amount,jedis-2.1.0中不支持这一操作。
列表
@Test public void testList() |
输出结果:
===========添加一个list=========== |
Redis中还有阻塞式的列表弹出命令以及在列表之间移动元素的命令:blpop, brpop, rpoplpush, brpoplpush等。
集合(Set)
@Test public void testSet() |
输出结果:
============向集合中添加元素============ |
关于Set还有一些其他命令:srandmember, sdiffstore, sinterstore, sunionstore等。
散列
@Test public void testHash() |
输出结果:
散列hash的所有键值对为:{key4=value4, key3=value3, key5=value5, key2=value2, key1=value1} |
有序集合
@Test public void testSortedSet() |
输出结果:
1 |
有序集合还有诸如zinterstore, zunionstore, zremrangebyscore, zremrangebyrank, zrevrank, zrevrange, zrangebyscore等命令。
排序sort
@Test public void testSort() |
输出结果:
collections的内容:[LinkedHashMap, WeakHashMap, HashMap, Stack, Vector, ArrayList] |
参考资料
- java操作redis
- java对redis的基本操作
- 《Redis In Action》Josiah L. Carlson
- redis的简单使用