Upgrade to the latest version of Portworx Enterprise for continued support. Documentation for the latest version of Portworx Enterprise can be found here.
Redis
This page provides instructions for deploying Redis with Portworx on Docker standalone.
Create a storage volume for Redis
To create a Portworx storage volume for Redis, use the docker volume create
command:
docker volume create -d pxd --name=redis_vol --opt \
size=4 --opt block_size=64 --opt repl=1 --opt fs=ext4
Start the Redis container
To start the Redis container using the redis_vol
volume created above, run the command below. (Use the Docker `-v’ option to attach the Portworx volume to the /data
directory, which is where Redis stores its data).
docker run --name some-redis -v redis_vol:/data --volume-driver=pxd -d redis redis-server --appendonly yes
Your Redis container is now available for use on port 6379.
Start the redis CLI client container
docker run -it --link some-redis:redis --rm redis redis-cli -h redis -p 6379
Populate the redis instance with some data
set foo 100
OK
incr foo
(integer) 101
append foo abcxxx
(integer) 9
get foo
"101abcxxx"
redis:6379>
Kill the “some-redis” instance
docker kill some-redis
Start a new redis-server instance with volume persistence
Start another redis-server container called other-redis
using the original redis_vol
to show data persistence.
docker run --name other-redis -v redis_vol:/data --volume-driver=pxd -d redis redis-server --appendonly yes
Start a redis CLI container
Connect to the new other-redis
container with the following command.
docker run -it --link other-redis:redis --rm redis redis-cli -h redis -p 6379
See that the original data has persisted
get foo
"101abcxxx"
Create snapshot of your volume
You can create container-granular snapshots, by saving just this container’s state. Snapshots are then immediately available as a volume.
Create a snapshot of the redis_vol
volume using pxctl
.
pxctl volume list
ID NAME SIZE HA STATUS
416765532972737036 redis_vol 2.0 GiB 1 up - attached on 3abe5484-756c-4076-8a80-7b7cd5306b28
pxctl snap create 416765532972737036
Volume successfully snapped: 3291428813175937263
Update the volume with new data
docker run -it --link other-redis:redis --rm redis redis-cli -h redis -p 6379
get foo
"101abcxxx"
set foo foobar
OK
get foo
"foobar"
See that the snapshot volume still contains the original data
docker run --name snap-redis -v 3291428813175937263:/data --volume-driver=pxd -d redis redis-server --appendonly yes
940d2ad6b87df9776e26d29e746eb05fb6081c0e6019d46ba77915d7c8305308
docker run -it --link snap-redis:redis --rm redis redis-cli -h redis -p 6379
get foo
"101abcxxx"
redis:6379>