google-cloud-platformredisgoogle-cloud-memorystore

Migration challenges from Redis to Memorystore


I have learned that Memorystore has full support for Redis protocols but there are some limitations. Please help me address the following challenges.

  1. Unlike Redis Memorystore doesn't seem to support Master-Slave provisioning to incorporate Read Write/Read Only specific requests. Is there any workaround?
  2. Existing Redis setup has password protected authentication mechanism in place? How do we enable Auth config for Memorystore?
  3. Existing application level client codes are written in C++. Is there any workaround to leverage the existing codes to connect Memorystore?

Thanks in advance.


Solution

  • I will try to address your questions individually, for better formatting and in case you have further doubts on them.

    1. As you mentioned and confirmed by a Google Agent here, Memorystore doesn't support Master-Slave provision. For now, it doesn't have a workaround for it as well. I believe opening a Feature Request with Google or answering the above Google Group question might be a good option, to receive an official return from Google.
    2. For you to configure authentication in your Memorystore, you need to create a service account and set an environment variable. The steps to achieve that are the following:

      1. In the Cloud Console, go to the Create service account key page. Go to the Create Service Account Key page
      2. From the Service account list, select New service account.
      3. In the Service account name field, enter a name.
      4. From the Role list, select Project > Owner.
      5. Click Create. A JSON file that contains your key downloads to your computer.
      6. Set the environment variable using the following command - next is an example: export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/[FILE_NAME].json".
    3. There isn't official support to C++, however, you can use Client Libraries to connect to the API of the language you want. It might be worth it to give it a try with connecting to C++. I found this repository provided by Google, related to C++, that can be used to connect. This seems to be the only available option.

    I hope these answers will help you, clarifying your doubts about the product.

    Let me know if the information helped you!