Valkey supports the ARM processor, for example the Raspberry Pi, as a main platform. While Valkey does run on Android, in the future we look forward to extend our testing efforts to Android to also make it an officially supported platform.
We believe that Valkey is ideal for IoT and embedded devices for several reasons:
Linux on ARM allows to trap unaligned accesses and fix them inside
the kernel in order to continue the execution of the offending program
instead of generating a SIGBUS
. Valkey avoids any kind of
unaligned access, so there is no need to have a specific value for this
kernel configuration. Even when kernel alignment fixing set as disabled
Valkey should run as expected.
make
as usual to create the executable.There is nothing special in the process. The only difference is that
by default, Valkey uses the libc
allocator instead of
defaulting to jemalloc
as it does in other Linux based
environments. This is because we believe that for the small use cases
inside embedded devices, memory fragmentation is unlikely to be a
problem. Moreover jemalloc
on ARM may not be as tested as
the libc
allocator.
Performance testing of Valkey was performed on the Raspberry Pi 3 and Pi 1 model B. The difference between the two Pis in terms of delivered performance is quite big. The benchmarks were performed via the loopback interface, since most use cases will probably use Valkey from within the device and not via the network. The following numbers were obtained using Redis OSS 4.0.
Raspberry Pi 3:
Raspberry Pi 1 model B:
The benchmarks above are referring to simple
SET
/GET
operations. The performance is similar
for all the Valkey fast operations (not running in linear time). However
sorted sets may show slightly slower numbers.