Quick start
After creating a local cluster, follow the instructions below to test YugabyteDB's Redis-compatible YEDIS API.
redis-cli is a command line interface to interact with a Redis server. For ease of use, YugabyteDB ships with the 4.0.1 version of redis-cli in its bin
directory.
1. Initialize YEDIS API and connect with redis-cli
- Initialize the YEDIS API.
Set up the redis_keyspace
keyspace and the .redis
table so that this cluster becomes ready for Redis clients. Detailed output for the setup_redis
command is available in the yb-ctl Reference.
$ ./bin/yb-ctl setup_redis
- Run redis-cli to connect to the service.
$ ./bin/redis-cli
127.0.0.1:6379>
- Run a Redis command to verify it is working.
127.0.0.1:6379> PING
"PONG"
- Initialize the YEDIS API.
Set up the redis_keyspace
keyspace and the .redis
table so that this cluster becomes ready for Redis clients. Detailed output for the setup_redis
command is available in the yb-ctl Reference.
$ ./bin/yb-ctl setup_redis
- Run redis-cli to connect to the service.
$ ./bin/redis-cli
127.0.0.1:6379>
- Run a Redis command to verify it is working.
127.0.0.1:6379> PING
"PONG"
-
The
yb-docker-ctl
utility initializes the YEDIS API automatically. -
Run redis-cli to connect to the service.
$ docker exec -it yb-tserver-n1 /home/yugabyte/bin/redis-cli
127.0.0.1:6379>
- Run a Redis command to verify it is working.
127.0.0.1:6379> PING
"PONG"
- Initialize YEDIS API in the YugabyteDB universe you just set up by running the following yb-admin command.
$ kubectl exec -it yb-master-0 -- /home/yugabyte/bin/yb-admin --master_addresses yb-master-0.yb-masters.default.svc.cluster.local:7100 setup_redis_table
...
I0127 19:38:10.358551 115 client.cc:1292] Created table system_redis.redis of type REDIS_TABLE_TYPE
I0127 19:38:10.358872 115 yb-admin_client.cc:400] Table 'system_redis.redis' created.
Run redis-cli
to connect to the service.
You can do this as shown below.
$ kubectl exec -it yb-tserver-0 -- /home/yugabyte/bin/redis-cli
127.0.0.1:6379>
Run a YEDIS command to verify it is working.
127.0.0.1:6379> PING
"PONG"
2. Simple key-value types
Insert a key and a value.
127.0.0.1:6379> set mykey somevalue
"OK"
Query the value by the key.
127.0.0.1:6379> get mykey
"somevalue"
Check if the key exists.
127.0.0.1:6379> exists mykey
(integer) 1
If the value is a number, it can be incremented.
127.0.0.1:6379> set counter 100
"OK"
127.0.0.1:6379> incr counter
(integer) 101
127.0.0.1:6379> incr counter
(integer) 102
127.0.0.1:6379> get counter
"102"
3. Hash data types
You can create a Redis Hash data type as follows. This models the data for user id 1000 with the following attributes: {username : john, birthyear : 1977, verified : 1}
.
127.0.0.1:6379> hmset user:1000 username john birthyear 1977 verified 1
"OK"
You can retrieve specific attributes for user id 1000 as follows.
127.0.0.1:6379> hget user:1000 username
"john"
127.0.0.1:6379> hget user:1000 birthyear
"1977"
You can fetch multiple attributes with a single command as follows.
127.0.0.1:6379> hmget user:1000 username birthyear no-such-field
1) "john"
2) "1977"
3) (nil)
You can fetch all attributes by using the hgetall
command.
127.0.0.1:6379> hgetall user:1000
1) "birthyear"
2) "1977"
3) "username"
4) "john"
5) "verified"
6) "1"