9 hours ago
- Raspberry Pi is a popular platform for embedded and IoT programming, and Redis is well-suited for data storage on it due to its small memory footprint and append-only write pattern.
- Adapting Redis to ARM processors required handling unaligned memory accesses: ARM v6 handles word-sized accesses but not multi-word or floating-point instructions, and the Linux kernel's fix-up is slow and incomplete.
- Redis now defines USE_ALIGNED_ACCESS for architectures lacking unaligned support, using memcpy for safe access and fixing crashes on ARM and SPARC.
- The hash function was updated to SipHash for security and alignment safety, replacing Murmurhash2.
- Performance on Pi 3 reaches ~28,000 ops/sec (non-pipelined) and ~80,000 ops/sec with pipelining; on older Model B, it's ~2,000 ops/sec.
- Future plans include integrating stream data type in Redis 4.2 for IoT data bus and making Pi a primary target platform for Redis.
- The author invites community feedback on embedded applications and improvements.