redis基本命令官网上介绍的很齐全,而且可以模拟redis命令,这里的命令都我试验过的,备忘用的
1.redis事务
命令:
> MULTI
OK
> INCR foo
QUEUED
> INCR bar
QUEUED
> EXEC
1) (integer) 1
2) (integer) 1
这几个命令解释下,multi表示事务的开始,像hibernate一样,中间可以执行若干个操作,然后exec表示提交事务,
中间有一步出错所有的执行
都会回滚
java代码如下:
@Test
public void testTransaction(){
jedis = pool.getResource();
Pipeline pipeline = jedis.pipelined();
long start = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
pipeline.hset("server", "" + i, "" + i);
}
Response<List<Object>> response = pipeline.exec();
long end = System.currentTimeMillis();
System.out.println("Pipelined SET: " + ((end - start)/1000.0) + " seconds");
}
执行结果如图:
从结果可以看出数据结构式hashmap的时候往数据库里插入10000条记录只用0.395秒,顺便说一下我的计算机
很垃圾2010年买的,不过我的redis是本地的,呵呵,用其他数据结构会更快,忍不住了试试key/value吧
代码如下:
jedis = pool.getResource();
Pipeline pipeline = jedis.pipelined();
long start = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
pipeline.set("server", "" + i, "" + i);
}
Response<List<Object>> response = pipeline.exec();
long end = System.currentTimeMillis();
System.out.println("Pipelined SET: " + ((end - start)/1000.0) + " seconds");
运行结构如图:
果真比hashmap快,为什么呢,这个和他们的数据库结构相关,key/value是顺序申请内存,hashmap是随机的,
需要一个hash算法去映射内存的具体地址
----未完成待续====