Maison > base de données > Redis > le corps du texte

À propos des transactions et du pipeline Redis

藏色散人
Libérer: 2020-11-05 16:04:03
avant
2579 Les gens l'ont consulté

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 !

À propos des transactions et du pipeline Redis

1. transaction reidis

La 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

À propos des transactions et du pipeline Redis

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.

À propos des transactions et du pipeline RedisÀ propos des transactions et du pipeline Redis

3. jeter

Annuler la transaction et donner jusqu'à l'exécution de toutes les commandes dans le bloc de transaction.

À propos des transactions et du pipeline Redis

2. Code jedis

1. Transaction

template.setEnableTransactionSupport(true);
Copier après la connexion
<br>
Copier après la connexion

2. Code :

 redisTemplate.opsForValue().set("aaa", 321);
redisTemplate.watch("aaa");
redisTemplate.multi();
redisTemplate.opsForValue().set("aaa", 123);
redisTemplate.opsForValue().set("bbb", 123);
redisTemplate.exec();
Copier après la connexion
<br>
3. 🎜>

code jedis :

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>
Copier après la connexion

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!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal