Skip to content

Commit 1d3e070

Browse files
Review and update Redis Learning Path materials
1 parent 2d7deeb commit 1d3e070

6 files changed

Lines changed: 75 additions & 77 deletions

File tree

content/learning-paths/servers-and-cloud-computing/redis-data-searching/_index.md

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
---
2-
title: Deploy Redis for data searching on Google Cloud C4A (Arm-based Axion VMs)
3-
4-
draft: true
5-
cascade:
6-
draft: true
2+
title: Deploy Redis for data searching on Google Cloud C4A
73

84
minutes_to_complete: 30
95

10-
who_is_this_for: This learning path is intended for software developers deploying and optimizing Redis-based data searching workloads on Linux/Arm64 environments, specifically using Google Cloud C4A virtual machines powered by Axion processors.
6+
who_is_this_for: This is an introductory topic for developers deploying and optimizing Redis-based data searching workloads on Linux/Arm64 environments, specifically using Google Cloud C4A virtual machines powered by Axion processors.
117

128
learning_objectives:
139
- Provision an Arm-based SUSE SLES virtual machine on Google Cloud (C4A with Axion processors)
1410
- Install Redis on a SUSE Arm64 (C4A) instance
1511
- Verify Redis functionality by running the server and performing baseline data insertion and retrieval tests on the Arm64 VM
16-
- Measure Redis SET (write) and GET (read) performance using the official redis-benchmark tool to evaluate throughput and latency on Arm64 (Aarch64)
12+
- Measure Redis SET (write) and GET (read) performance using the official redis-benchmark tool to evaluate throughput and latency on Arm64 (AArch64)
1713

1814
prerequisites:
1915
- A [Google Cloud Platform (GCP)](https://cloud.google.com/free) account with billing enabled

content/learning-paths/servers-and-cloud-computing/redis-data-searching/background.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ Redis is designed for high performance, low latency, and high throughput, making
2222

2323
Redis is widely adopted for caching, session management, real-time analytics, pub/sub messaging, and leaderboards in gaming and web applications. It integrates seamlessly with programming languages like Python, Java, Go, and Node.js.
2424

25-
To learn more, visit the [Redis website](https://redis.io/) and explore the [Reddis documentation](https://redis.io/docs/latest/).
25+
To learn more, visit the [Redis website](https://redis.io/) and explore the [Redis documentation](https://redis.io/docs/latest/).

content/learning-paths/servers-and-cloud-computing/redis-data-searching/baseline.md

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,63 @@
11
---
2-
title: Test Redis on Google Axion C4A
2+
title: Test Redis
33
weight: 5
44

55
### FIXED, DO NOT MODIFY
66
layout: learningpathall
77
---
88

9-
## Redis Baseline Testing on GCP SUSE VMs
9+
## Perform Redis baseline testing on GCP SUSE VMs
1010
This section shows you how to perform baseline testing for Redis running on a GCP SUSE Arm64 VM, focusing on data insertion, retrieval, and search performance.
1111

1212
### Prerequisites
1313
This command launches the Redis server process in the background. It allows you to run subsequent commands in the same terminal session while Redis continues running.
14+
1415
Start the Redis service:
1516

1617
```console
1718
redis-server &
1819
```
20+
1921
Check if Redis is active and responding to commands:
20-
The redis-cli ping command sends a simple health check request to the Redis server. A PONG response confirms that the server is running correctly and the client can communicate with it.
2122
```console
2223
redis-cli ping
2324
```
24-
25-
output:
25+
The output is similar to:
2626

2727
```output
2828
PONG
2929
```
3030

31-
### Insert Sample Data
32-
These steps populate the Redis database with a sample dataset to validate insertion performance and data persistence. You will create 10,000 key-value pairs using a simple shell loop and verify that the data has been successfully stored.
31+
## Insert sample data
32+
33+
Populate the Redis database with a sample dataset to validate insertion performance and data persistence. You create 10,000 key-value pairs using a simple shell loop and verify that the data has been successfully stored.
3334

3435
Use `redis-cli` to insert 10,000 sample key-value pairs:
36+
3537
```console
3638
for i in $(seq 1 10000); do
3739
redis-cli SET key:$i "value-$i" > /dev/null
3840
done
3941
```
4042
- This command iterates through numbers **1 to 10,000**, setting each as a Redis key in the format `key:<number>` with the corresponding value `"value-<number>"`.
4143
- The `> /dev/null` part suppresses command output to make the insertion process cleaner and faster.
44+
- The `> /dev/null` part suppresses command output to make the insertion process cleaner and faster.
4245

43-
**Verify Data Storage Count:**
44-
45-
The `DBSIZE` command returns the total number of keys currently stored in the Redis database.
46+
Verify data storage count:
4647

4748
```console
4849
redis-cli DBSIZE
4950
```
5051

52+
The output is similar to:
53+
5154
```output
5255
(integer) 10000
5356
```
54-
Seeing `(integer) 10000` confirms that all key-value pairs were inserted successfully.
5557

56-
**Verify Sample Data Retrieval**
58+
This confirms that all key-value pairs were inserted successfully.
59+
60+
### Verify sample data retrieval
5761

5862
Fetch one of the inserted keys to confirm data correctness:
5963

@@ -70,7 +74,7 @@ You should see an output similar to:
7074
"value-5000"
7175
```
7276

73-
### Perform Basic Data Search Tests
77+
## Perform basic data search tests
7478
This step verifies Redis’s ability to retrieve specific data efficiently using unique keys. The `GET` command fetches the value associated with a given key from Redis.
7579

7680
Verify Redis's ability to retrieve specific data efficiently using unique keys. The `GET` command fetches the value associated with a given key from Redis.
@@ -87,17 +91,16 @@ You should see an output similar to:
8791
```
8892
This confirms that Redis is storing and retrieving data correctly from memory.
8993

90-
### Search for Multiple Keys Using Pattern Matching
94+
## Search for multiple keys using pattern matching
9195
This test demonstrates how Redis can locate multiple keys that match a pattern, useful for exploratory queries or debugging.
9296

9397
Use the `KEYS` command to search for keys matching a pattern:
9498

9599
```console
96100
redis-cli KEYS "key:1*"
97101
```
98-
`KEYS` is fast but **blocks the server** when handling large datasets, so it’s not recommended in production.
99102

100-
You should see an output similar to:
103+
The output is similar to:
101104

102105
```output
103106
1) "key:1392"
@@ -116,7 +119,7 @@ You should see an output similar to:
116119
`KEYS` is fast but blocks the server when handling large datasets, so it's not recommended in production.
117120
{{% /notice %}}
118121

119-
### Production-safe searching with SCAN
122+
## Production-safe searching with SCAN
120123

121124
Use the `SCAN` command for larger datasets — it is non-blocking and iterates safely.
122125

@@ -140,9 +143,7 @@ You should see an output similar to:
140143
Redis will return a cursor value (for example, `9792`).
141144
Continue scanning by reusing the cursor until it returns `0`, meaning the iteration is complete.
142145

143-
### Measure data retrieval performance
144-
145-
146+
## Measure data retrieval performance
146147

147148
Measure how quickly Redis can retrieve a single key from memory, helping to establish a baseline for data access latency on the Arm-based VM.
148149

content/learning-paths/servers-and-cloud-computing/redis-data-searching/benchmarking.md

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,45 @@
11
---
2-
title: Redis Benchmarking
2+
title: Benchmark Redis
33
weight: 6
44

55
### FIXED, DO NOT MODIFY
66
layout: learningpathall
77
---
88

9+
## Benchmark Redis using redis-benchmark
910

10-
## Redis Benchmarking by redis-benchmark
11-
The `redis-benchmark` tool is an official performance testing utility for Redis. It helps measure to throughput (requests per second) and latency (response delay) across different workloads.
11+
The `redis-benchmark` tool is an official performance testing utility for Redis. It measures throughput (requests per second) and latency (response delay) across different workloads.
1212

1313
### Prerequisites
14-
Ensure Redis server is running and accessible:
14+
15+
Before running benchmarks, verify that Redis is running and accessible:
1516

1617
```console
1718
redis-cli ping
1819
```
1920

20-
If you do not see a "PONG" response, please start redis:
21+
If you don't see a `PONG` response, start Redis:
2122

2223
```console
2324
redis-server &
2425
redis-cli ping
2526
```
2627

27-
### Benchmark SET (Write Performance)
28-
The `SET` benchmark helps validate Redis’s ability to handle high insertion rates efficiently on Arm-based servers.
28+
### Benchmark SET (write performance)
2929

30-
The following command benchmarks data insertion performance:
30+
Benchmark data insertion performance:
3131

3232
```console
3333
redis-benchmark -t set -n 100000 -c 50
3434
```
35-
**Explanation:**
3635

37-
- `-t set`: Runs the benchmark only for **SET** operations.
38-
- `-n 100000`: Performs **100,000 total requests**.
39-
- `-c 50`: Simulates **50 concurrent clients**.
36+
This command:
37+
38+
- Runs the benchmark for SET operations only (`-t set`)
39+
- Performs 100,000 total requests (`-n 100000`)
40+
- Simulates 50 concurrent clients (`-c 50`)
4041

41-
You should see an output similar to:
42+
The output is similar to:
4243

4344
```output
4445
====== SET ======
@@ -85,19 +86,20 @@ Summary:
8586
0.170 0.056 0.167 0.183 0.191 1.095
8687
```
8788

88-
### Benchmark GET (Read/Search Performance)
89-
Now test data retrieval performance separately.
89+
### Benchmark GET (read performance)
90+
91+
Test data retrieval performance:
9092

9193
```console
9294
redis-benchmark -t get -n 100000 -c 50
93-
```
94-
**Explanation:**
9595

96-
- `-t get`: Runs the benchmark only for **GET** operations.
97-
- `-n 100000`: Executes **100,000 total requests**.
98-
- `-c 50`: Simulates **50 concurrent clients** performing reads.
96+
Parameters:
97+
98+
- `-t get`: Runs the benchmark only for GET operations.
99+
- `-n 100000`: Executes 100,000 total requests.
100+
- `-c 50`: Simulates 50 concurrent clients performing reads.
99101

100-
You should see an output similar to:
102+
The output is similar to:
101103

102104
```output
103105
====== GET ======
@@ -141,26 +143,24 @@ Summary:
141143
0.169 0.048 0.167 0.183 0.191 0.807
142144
```
143145

144-
### Benchmark Metrics Explanation
146+
## Interpret the benchmark metrics
145147

146-
- **Throughput:** Number of operations (requests) Redis can process per second.
147-
- **Latency:** Latency reflects the time it takes for Redis to complete a single request, measured in milliseconds (ms).
148-
- **avg:** Average time taken to process a request across the entire test.
149-
- **min:** Fastest observed response time (best case).
150-
- **p50:** Median latency — 50% of requests completed faster than this value.
151-
- **p95:** 95th percentile — 95% of requests completed faster than this value.
152-
- **p99:** 99th percentile — shows near worst-case latency, key for reliability analysis.
153-
- **max:** Slowest observed response time (worst case).
154-
155-
### Benchmark summary
156-
Results from the earlier run on the `c4a-standard-4` (4 vCPU, 16 GB memory) Arm64 VM in GCP (SUSE Enterprise Server):
148+
The following table summarizes the benchmark results from the earlier run on the `c4a-standard-4` (4 vCPU, 16 GB memory) Arm64 VM in GCP (SUSE Enterprise Server):
157149

158150
| Operation | Total Requests | Concurrent Clients | Avg Latency (ms) | Min (ms) | P50 (ms) | P95 (ms) | P99 (ms) | Max (ms) | Throughput (req/sec) | Description |
159151
|------------|----------------|--------------------|------------------|-----------|-----------|-----------|-----------|-----------|-----------------------|--------------|
160152
| SET | 100,000 | 50 | 0.170 | 0.056 | 0.167 | 0.183 | 0.191 | 1.095 | 149,700.61 | Measures Redis write performance using SET command |
161153
| GET | 100,000 | 50 | 0.169 | 0.048 | 0.167 | 0.183 | 0.191 | 0.807 | 150,375.94 | Measures Redis read performance using GET command |
162154

163-
- **High Efficiency:** Redis achieved over **150K ops/sec** on both read and write workloads, showcasing strong throughput on **Arm64 (C4A)** architecture.
164-
- **Low Latency:** Average latency remained around **0.17 ms**, demonstrating consistent response times under concurrency.
165-
- **Balanced Performance:** Both **SET** and **GET** operations showed nearly identical performance, indicating excellent CPU and memory optimization on **Arm64**.
166-
- **Energy-Efficient Compute:** The **Arm-based C4A VM** delivers competitive performance-per-watt efficiency, ideal for scalable, sustainable Redis deployments.
155+
Redis demonstrated excellent performance on the Arm64-based C4A VM, achieving over 150K operations per second for both read and write workloads with an average latency of approximately 0.17 ms. Both SET and GET operations showed nearly identical performance characteristics, indicating efficient CPU and memory optimization on the Arm architecture. The Arm-based C4A VM delivers competitive performance-per-watt efficiency, making it ideal for scalable, sustainable Redis deployments.
156+
157+
## What you've accomplished and what's next
158+
159+
In this section, you:
160+
- Benchmarked Redis SET operations, achieving over 149K requests per second with 0.170 ms average latency
161+
- Benchmarked Redis GET operations, achieving over 150K requests per second with 0.169 ms average latency
162+
- Verified that Redis performs efficiently on Google Axion C4A Arm instances
163+
164+
You've successfully benchmarked Redis on Google Cloud's C4A Arm-based virtual machines, demonstrating strong performance for in-memory data operations.
165+
166+
For next steps, consider exploring Redis Cluster for distributed deployments, implementing persistence strategies for production workloads, or testing more advanced data structures like sorted sets and streams. You can also compare performance across different C4A machine types to optimize cost and performance for your specific use case.

content/learning-paths/servers-and-cloud-computing/redis-data-searching/installation.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ make distclean
3838
```
3939
This removes any residual files from a previous build, ensuring a clean build environment.
4040

41-
**Now build Redis dependencies and compile Redis:**
41+
Build Redis dependencies and compile Redis:
4242

4343
Redis relies on several third-party libraries (such as hiredis, jemalloc, and lua) to optimize performance and functionality. After building dependencies, the Redis source is compiled with BUILD_TLS=yes, enabling support for encrypted TLS connections.
4444

@@ -53,23 +53,23 @@ sudo make BUILD_TLS=yes
5353
The `BUILD_TLS=yes` flag enables TLS (SSL) support for secure Redis connections.
5454
{{% /notice %}}
5555

56-
### Verify Redis binary
56+
## Verify Redis binary
5757

58-
After a successful build, check that the redis-server binary exists:
58+
After a successful build, check that the `redis-server` binary exists:
5959

6060
```
6161
cd src
6262
ls -l redis-server
6363
```
6464

65-
You should see a file similar to:
65+
The output is similar to:
6666

6767
```output
6868
-rwxr-xr-x 1 root root 17869216 Oct 23 11:48 redis-server
6969
```
7070
This confirms that Redis compiled successfully and that the `redis-server` binary is present in the `/src` directory. The file’s permissions indicate it is executable.
7171

72-
### Install Redis system-wide
72+
## Install Redis system-wide
7373
Use the following command to install Redis binaries (`redis-server` and `redis-cli`) globally, making them accessible from any directory:
7474

7575
```console
@@ -94,7 +94,8 @@ The expected output is:
9494

9595
This confirms that Redis binaries are installed in your system path.
9696

97-
### Verify Installation
97+
### Verify installation
98+
9899
Check Redis versions:
99100

100101
```console

content/learning-paths/servers-and-cloud-computing/redis-data-searching/instance.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ In this section, you will learn how to provision a Google Axion C4A Arm virtual
1414
For support on GCP setup, see the Learning Path [Getting started with Google Cloud Platform](/learning-paths/servers-and-cloud-computing/csp/google/).
1515
{{% /notice %}}
1616

17-
## Create your Google Axion C4A Arm VM
17+
## Create your Google Axion C4A Arm virtual machine
1818

1919
To create a virtual machine based on the C4A instance type:
2020
- Navigate to the [Google Cloud Console](https://console.cloud.google.com/).
@@ -24,7 +24,7 @@ To create a virtual machine based on the C4A instance type:
2424
- Set **Series** to `C4A`.
2525
- Select `c4a-standard-4` for machine type.
2626

27-
![Create a Google Axion C4A Arm virtual machine in the Google Cloud Console with c4a-standard-4 selected alt-text#center](images/gcp-vm.png "Creating a Google Axion C4A Arm virtual machine in Google Cloud Console")
27+
![Google Cloud Console showing Create Instance form with Machine configuration section displaying C4A series and c4a-standard-4 machine type selected alt-text#center](images/gcp-vm.png "Create a Google Axion C4A Arm virtual machine")
2828

2929

3030
- Under **OS and Storage**, select **Change**, then choose an Arm64-based OS image. For this Learning Path, use **SUSE Linux Enterprise Server**.
@@ -34,10 +34,10 @@ To create a virtual machine based on the C4A instance type:
3434
- Select **Create** to launch the instance.
3535
- Once created, you should see an **SSH** option to the right in your list of VM instances. Select this to launch an SSH shell into your VM instance:
3636

37-
![Google Cloud Console showing VM instances list with SSH button highlighted for connecting to the running C4A instance#center](images/gcp-ssh.png "SSH connection to VM instance")
37+
![Google Cloud Console showing VM instances list with SSH button highlighted for connecting to the running C4A instance alt-text#center](images/gcp-ssh.png "SSH connection to VM instance")
3838

39-
- A window from your browser should come up and you should now see a shell into your VM instance:
39+
- A window from your browser opens and you see a shell into your VM instance:
4040

41-
![Terminal Shell in your VM instance alt-text#center](images/gcp-shell.png "Terminal shell in your VM instance")
41+
![Browser-based SSH terminal window showing command prompt connected to the SUSE Linux VM instance alt-text#center](images/gcp-shell.png "Terminal shell in VM instance")
4242

43-
Next, install Redis.
43+
You're now ready to install Redis.

0 commit comments

Comments
 (0)