All pages
Powered by GitBook
1 of 1

Loading...

Redis - Didacticiels

Comment provisionner un PaaS Redis ?

Pour commencer, rendez-vous sur ITCare et recherchez votre service global cible où vous créerez votre nouveau déploiement Redis.

Recherchez votre service Global dans la barre de recherche supérieure et cliquez dessus pour afficher sa page d'information.

Une fois dans votre Service Global, cliquez sur le bouton Créer une ressource, sélectionnez Redis et la version requise.

Remplir le formulaire :

  • Sélectionner une topologie

  • Définir le nom du futur déploiement

  • Le dimensionnement

  • Le stockage requis sur chaque instance

Cliquer sur Suivant une fois les champs remplis.

A l'étape de personnalisation :

  • Saisir le mot de passe du compte administrateur qui sera fourni

  • Sélectionner les options de persistance requises

  • Activer ou non le chiffrement TLS

Puis cliquer sur Suivant.

Les mots de passe ne sont pas sauvegardés par cegedim.cloud.

Assurez-vous de sauvegarder votre mot de passe!

Réviser la synthèse avant de soumettre le formulaire.

Le provisionnement peut prendre jusqu'à 2 heures en fonction de la charge actuelle de l'automatisation.

Une fois le déploiement prêt, vous en serez informé par e-mail.

Comment se connecter à une instance autonome Redis ?

Ce code décrit comment se connecter sur Redis lorsque la topologie est une instance unique. Ce code est volontairement simplifié (les erreurs ne sont pas gérées), il est destiné à la démonstration uniquement.

Le langage Python est utilisé. Nous supposons que l'instance Redis est nommée pcluredis01.hosting.cegedim.cloud.

Exemple Python sans TLS
Exemple Python avec TLS

Comment se connecter à un cluster Redis ?

Ce code décrit comment se connecter sur Redis lorsque la topologie est Cluster (avec Sentinel). Il est volontairement simplifié (les erreurs ne sont pas gérées), il est destiné à la démonstration uniquement.

Le langage Python est utilisé.

Nous supposons que le cluster Redis est nommé redis-cluster avec un préfixe pclu. Il existe donc 3 machines :

  • pcluredis01.hosting.cegedim.cloud

  • pcluredis02.hosting.cegedim.cloud

  • pcluredis03.hosting.cegedim.cloud

Deux exemples sont proposés, avec et sans TLS.

Exemple Python sans TLS
Exemple Python avec TLS

La localisation cible

  • Le réseau cible

  • Les options de gestion (sauvegarde, surveillance, 24/7, réplication site distant)

  • import redis
     
    def main():
        try:
            myRedis = redis.Redis(host='redis01.hosting.cegedim.cloud', port=6379, db=0, password='1MyStrongPassword!', username='redis', decode_responses=True)
            pong = myRedis.ping()
            print(pong) # should be True
            myRedis.set('mykey','myvalue')
            print(myRedis.get('mykey')) # should be myvalue
            myRedis.close()
        except Exception as ex:
            print(ex)
     
    if __name__ == "__main__":
        main()
    import redis
     
    def main():
        try:
            myRedis = redis.Redis(host='redis01.hosting.cegedim.cloud', port=6379, db=0, password='1MyStrongPassword!', username='redis', decode_responses=True)
            pong = myRedis.ping()
            print(pong) # should be True
            myRedis.set('mykey','myvalue')
            print(myRedis.get('mykey')) # should be myvalue
            myRedis.close()
        except Exception as ex:
            print(ex)
     
    if __name__ == "__main__":
        main()
    from redis.sentinel import Sentinel
    import redis
     
    def main():
        try:
            mySentinel = Sentinel(
              [
                ('pcluredis01.hosting.cegedim.cloud', 26379),
                ('pcluredis02.hosting.cegedim.cloud', 26379),
                ('pcluredis03.hosting.cegedim.cloud', 26379)
              ],
              sentinel_kwargs={
                'username': 'redis',
                'password': '1MyStrongPassword!',
                'socket_connect_timeout': 0.5
              }
            )
             
            master_host, master_port = mySentinel.discover_master('redis-cluster')
            print("Redis master address: {}, TCP port {}".format(master_host, master_port))
            myMaster = redis.Redis(
              host=master_host,
              port=master_port,
              db=0,
              password='1MyStrongPassword!',
              username='redis',
              decode_responses=True
            )
            pong = myMaster.ping()
            print(pong) # should be True
            myMaster.set('mykey','myvalue')
            print(myMaster.get('mykey')) # should be myvalue
            myMaster.close()
            replicas = mySentinel.discover_slaves('redis-cluster')
            for replica in replicas:
                replica_host = replica[0]
                replica_port = replica[1]
                myReplica = redis.Redis(host=replica_host, port=replica_port, db=0, password='1MyStrongPassword!', username='redis', decode_responses=True)
                print("replica address {} port {} mykey {}".format(replica_host, replica_port, myReplica.get('mykey'))) # should be myvalue
                myReplica.close()
             
        except Exception as ex:
            print(ex)
     
    if __name__ == "__main__":
        main()
    from redis.sentinel import Sentinel
    import redis
     
    def main():
        try:
            mySentinel = Sentinel(
              [
                ('pcluredis01.hosting.cegedim.cloud', 26379),
                ('pcluredis02.hosting.cegedim.cloud', 26379),
                ('pcluredis03.hosting.cegedim.cloud', 26379)
              ],
              sentinel_kwargs={
                'username': 'redis',
                'password': '1MyStrongPassword!',
                'ssl': True,
                'ssl_ca_certs': '/tmp/ca-redis.crt',
                'ssl_cert_reqs': None,
                'ssl_certfile': None,
                'ssl_keyfile': None,
                'ssl_check_hostname': False,
                'socket_connect_timeout': 0.5
              }
            )
             
            master_host, master_port = mySentinel.discover_master('redis-cluster')
            print("Redis master address: {}, TCP port {}".format(master_host, master_port))
            myMaster = redis.Redis(
              host=master_host,
              port=master_port,
              db=0,
              password='1MyStrongPassword!',
              username='redis',
              decode_responses=True,
              ssl=True,
              ssl_ca_certs='/tmp/ca-redis.crt'
            )
            pong = myMaster.ping()
            print(pong) # should be True
            myMaster.set('mykey','myvalue')
            print(myMaster.get('mykey')) # should be myvalue
            myMaster.close()
            replicas = mySentinel.discover_slaves('redis-cluster')
            for replica in replicas:
                replica_host = replica[0]
                replica_port = replica[1]
                myReplica = redis.Redis(host=replica_host, port=replica_port, db=0, password='1MyStrongPassword!', username='redis', decode_responses=True, ssl=True, ssl_ca_certs='/tmp/ca-redis.crt')
                print("replica address {} port {} mykey {}".format(replica_host, replica_port, myReplica.get('mykey'))) # should be myvalue
                myReplica.close()
             
        except Exception as ex:
            print(ex)
     
    if __name__ == "__main__":
        main()