DEV Community

Cover image for Getting started with Valkey and Finch
Ricardo Sueiras for AWS

Posted on • Originally published at community.aws

Getting started with Valkey and Finch

This week I am at the incredible WeAreDevelopers conference in Berlin, Germany. An expected fifteen thousand developers will be coming over the next couple of days to learn about the latest technologies, including open source projects like Valkey.

If you are not familiar with Valkey, it is an open source fork of Redis. I am on the Valkey booth helping to raise awareness with the developer community here. As I have been getting my demos and code samples together, I realised that I could not get Valkey working with Finch (Finch, an open source alternative to running Docker Desktop on your Mac and Windows environments). I spent a few minutes figuring this out, so want to quickly share this incase you want to run Valkey using Finch.

Error with existing Docker compose configurations

I initially used a Docker Compose file from my colleague Ricardo Ferreria (check out his awesome post, Getting Started with Valkey using Docker and Go) but this generated the following error:

INFO[0000] Creating volume local-valkey_valkey-data     
WARN[0000] Ignoring: service valkey: [HealthCheck]      
INFO[0000] Ensuring image valkey/valkey:7.2.5           
INFO[0000] Re-creating container valkey                 
INFO[0000] Attaching to logs                            
valkey |chown: changing ownership of '.': Permission denied
INFO[0000] Container "valkey" exited                    
INFO[0000] All the containers have exited  
Enter fullscreen mode Exit fullscreen mode

Now this is an issue that I am familiar with. A while back, I created a post on how to run the project, mwaa-local-runner on Finch (Using Finch to run Apache Airflow using mwaa-local-runner) so I knew the issue was likely to be volume related.

I created a volume using the Finch cli

finch volume create valkey-data
Enter fullscreen mode Exit fullscreen mode

and then adjusted the configuration file so that I ended up with the following

services:
  valkey:
    container_name: valkey
    hostname: valkey
    image: valkey/valkey:7.2.5
    volumes:
      - ./conf/valkey.conf:/etc/valkey/valkey.conf
      - valkey-data:/data
    command: valkey-server /etc/valkey/valkey.conf
    healthcheck:
      test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
      interval: 1s
      timeout: 3s
      retries: 5
    ports:
      - 6379:6379
volumes:
    valkey-data:
Enter fullscreen mode Exit fullscreen mode

This is what my directory tree looks like

└── finch
    ├── conf
    │   └── valkey.conf
    ├── data
    └── valkey.yml
Enter fullscreen mode Exit fullscreen mode

I then start up Valkey using the following command

finch compose -p local-valkey -f valkey.yml up  
Enter fullscreen mode Exit fullscreen mode

And this time, success!

valkey |1:C 18 Jul 2024 06:11:03.711 * oO0OoO0OoO0Oo Valkey is starting oO0OoO0OoO0Oo
valkey |1:C 18 Jul 2024 06:11:03.711 * Valkey version=7.2.5, bits=64, commit=00000000, modified=0, pid=1, just started
valkey |1:C 18 Jul 2024 06:11:03.711 * Configuration loaded
valkey |1:M 18 Jul 2024 06:11:03.711 * Loading RDB produced by valkey version 7.2.5
valkey |1:M 18 Jul 2024 06:11:03.711 * RDB age 24 seconds
valkey |1:M 18 Jul 2024 06:11:03.711 * RDB memory usage when created 0.86 Mb
valkey |1:M 18 Jul 2024 06:11:03.711 * Done loading RDB, keys loaded: 0, keys expired: 0.
valkey |1:M 18 Jul 2024 06:11:03.711 * DB loaded from disk: 0.000 seconds
valkey |1:M 18 Jul 2024 06:11:03.711 * Ready to accept connections tcp
Enter fullscreen mode Exit fullscreen mode

And I can confirm this is working by using the valkey-cli tool which I have installed locally

valkey-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> 
Enter fullscreen mode Exit fullscreen mode

So, if you are looking to give Valkey a try and want to use an open source alternative to Docker, then give this a try. You can find the code in the supporting GitHub repo here

Top comments (0)