Maison > Article > base de données > À propos des transactions et du pipeline Redis
La colonne suivante du Tutoriel Redis vous présentera les transactions et le pipeline Redis. J'espère qu'elle sera utile aux amis dans le besoin !
2. Code jedisLa transaction Redis peut exécuter plusieurs commandes à la fois et comporte les trois importantes suivantes Garanties :
- Les opérations par lots sont mises dans le cache de file d'attente avant l'envoi de la commande EXEC.
- Entrez l'exécution de la transaction après avoir reçu la commande EXEC. Si une commande de la transaction ne parvient pas à s'exécuter, les commandes restantes sont toujours exécutées.
- Pendant le processus d'exécution de la transaction, les demandes de commandes soumises par d'autres clients ne seront pas insérées dans la séquence de commandes d'exécution de la transaction.
Une transaction passera par les trois étapes suivantes du début à l'exécution :
- Démarrer la transaction.
- Commande pour rejoindre la file d'attente.
- Exécutez la transaction.
MULTI démarre une transaction, puis met en file d'attente plusieurs commandes dans la transaction, et enfin la transaction est déclenchée par la commande EXEC , Exécutez toutes les commandes de la transaction ensemble :
1. Exécution de la transaction
2. 🎜>Surveiller une (ou plusieurs) clés. Si cette (ou ces) clés sont modifiées par d'autres commandes avant l'exécution de la transaction, la transaction sera interrompue.
3. jeter
Annuler la transaction et donner jusqu'à l'exécution de toutes les commandes dans le bloc de transaction.
1. Transaction3. 🎜>2. Code :
template.setEnableTransactionSupport(true);<br>
redisTemplate.opsForValue().set("aaa", 321); redisTemplate.watch("aaa"); redisTemplate.multi(); redisTemplate.opsForValue().set("aaa", 123); redisTemplate.opsForValue().set("bbb", 123); redisTemplate.exec();<br>
Map<string> map = new HashMap(); map.put("aaa", 111); map.put("bbb", 222); map.put("ccc", 3333); List list = redisTemplate.executePipelined(new RedisCallback<object>() { @Override public Object doInRedis(RedisConnection redisConnection) throws DataAccessException { redisConnection.openPipeline(); for (Map.Entry<string> mapEntry : map.entrySet()) { redisConnection.set(redisTemplate.getKeySerializer().serialize(mapEntry.getKey()), redisTemplate.getValueSerializer().serialize(mapEntry.getValue())); } return null; } }, redisTemplate.getValueSerializer()); System.out.println(redisUtil.get("aaa")); System.out.println(redisUtil.get("bbb")); System.out.println(redisUtil.get("ccc"));</string></object></string>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!