redis 事務可以一次執行多個命令, 並且帶有以下兩個重要的保證:
1.事務是乙個單獨的隔離操作:事務中的所有命令都會序列化、按順序地執行。事務在執行的過程中,不會被其他客戶端傳送來的命令請求所打斷。
2.事務是乙個原子操作:事務中的命令要麼全部被執行,要麼全部都不執行。
乙個事務從開始到執行會經歷以下三個階段:
1.開始事務。
2.命令入隊。
3.執行事務。
首先我們來看乙個**塊
trycatch(exception e)finally
multi() 標記乙個事務塊的開始。方法返回乙個transactionexec() 執行所有事務塊內的命令。將所有的返回值存到list中
close() 表示事務結束
discard() 取消事務,放棄執行事務塊內的所有命令。也就是回滾。
我們可以重寫exec方法
public listexec(transaction tx, jedis jedis) catch (exception e) finally catch (ioexception ioe)
}if (jedis != null)
}return
null;
}
transaction tx = jedis.multi();
tx.zadd(************); //操作1
tx.zadd(************); //操作2
listret = tx.exec(tx,jedis);
這樣操作1和操作2就符合原子性了。 Redis的Java客戶端Jedis
commons pool 1.6.jar jedis 2.1.0.jar 用windows中的eclipse連線虛擬機器的redis的注意事項 禁用linux的防火牆 linux裡執行命令 service iptables stop redis.conf中注釋掉 bind 127.0.0.1 然後 ...
使用jedis客戶端連線redis,單機版和集群版
1.入門例項 test public void testjedis 存值 test public void testgetjedis 取值 dependency groupid redis.clients groupid artifactid jedis artifactid jedis versi...
Redis 客戶端連線
redis 通過監聽乙個 tcp 埠或者 unix socket 的方式來接收來自客戶端的連線,當乙個連線建立後,redis 內部會進行以下一些操作 在 redis2.4 中,最大連線數是被直接硬編碼在 裡面的,而在2.6版本中這個值變成可配置的。maxclients 的預設值是 10000,你也可...