Skip to content

Commit 185ddf9

Browse files
committedAug 29, 2023
feat(redis): introduce redis client for caching
1 parent be496c7 commit 185ddf9

File tree

4 files changed

+262
-0
lines changed

4 files changed

+262
-0
lines changed
 

‎Dockerfile

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
FROM redis:alpine
2+
3+
# Expose port 6739
4+
EXPOSE 6739
5+
6+
# Set default Redis config
7+
RUN echo "port 6739" >> /usr/local/etc/redis/redis.conf
8+
9+
# Start Redis
10+
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]

‎crates/Cargo.lock

+229
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎crates/codeindex/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ tokio = { version = "1.32.0", features = ["full"] }
1111
axum = "0.6.20"
1212
serde = { version = "1.0.188", features = ["derive"] }
1313
serde_json = "1.0.105"
14+
redis = { version = "0.23.2", features = [ "cluster-async", "tokio-comp" ] }
1415
tree-sitter = "0.20.10"
1516
tree-sitter-rust = "0.20.4"
1617
tree-sitter-python = "0.20.4"

‎crates/codeindex/src/main.rs

+22
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ use axum::{
44
routing::get,
55
Router,
66
};
7+
use redis::cluster::ClusterClient;
8+
use redis::AsyncCommands;
79
use serde_json::Value as JsonValue;
810

911
#[derive(serde::Serialize)]
@@ -30,8 +32,28 @@ async fn handler() -> Result<(), CodeIndexError> {
3032
Err(CodeIndexError::SomethingWentWrong)
3133
}
3234

35+
async fn fetch_an_integer() -> String {
36+
let nodes = vec!["redis://127.0.0.1:6739"];
37+
let client = ClusterClient::new(nodes).unwrap();
38+
let mut connection = client.get_async_connection().await.expect(
39+
format!(
40+
"\n[Error] {}\n\t{}\n\t{}\n",
41+
"Failed to connect to redis cluster server. Please check:",
42+
"1. Whether redis is running and listening on port 6739.",
43+
"2. Whether redis cluster support is enabled."
44+
)
45+
.as_str(),
46+
);
47+
let _: () = connection.set("test", "test_data").await.unwrap();
48+
let rv: String = connection.get("test").await.unwrap();
49+
return rv;
50+
}
51+
3352
#[tokio::main]
3453
async fn main() {
54+
let result = fetch_an_integer();
55+
print!("{:?}", result.await);
56+
3557
let app = Router::new()
3658
.route("/", get(root))
3759
.route("/:file", get(handler));

0 commit comments

Comments
 (0)