#session #redis #tokio

async-fred-session

基于fred.rs的redis会话存储,用于async-session

6个版本

0.1.5 2023年7月14日
0.1.4 2023年4月18日
0.1.2 2023年1月23日

#785 in HTTP服务器

Download history 98/week @ 2024-03-11 66/week @ 2024-03-18 69/week @ 2024-03-25 104/week @ 2024-04-01 57/week @ 2024-04-08 7/week @ 2024-04-15 15/week @ 2024-04-22 13/week @ 2024-04-29 9/week @ 2024-05-06 19/week @ 2024-05-13 27/week @ 2024-05-20 4/week @ 2024-05-27 21/week @ 2024-06-03 19/week @ 2024-06-10 15/week @ 2024-06-17 9/week @ 2024-06-24

65 每月下载量
zero4rs 中使用

MIT 协议

13KB
194

async-fred-session

License: MIT docs.rs crates.io

使用fred.rs的Redis会话存储,用于async-session

use async_fred_session::{RedisSessionStore, fred::{pool::RedisPool, types::RedisConfig}};
use async_session::{Session, SessionStore};

// pool creation
let config = RedisConfig::from_url("redis://127.0.0.1:6379").unwrap();
let rds_pool = RedisPool::new(config, None, None, 6).unwrap();
rds_pool.connect();
rds_pool.wait_for_connect().await.unwrap();

// store and session
let store = RedisSessionStore::from_pool(rds_pool, Some("async-fred-session/".into()));
let mut session = Session::new();
session.insert("key", "value").unwrap();

let cookie_value = store.store_session(session).await.unwrap().unwrap();
let session = store.load_session(cookie_value).await.unwrap().unwrap();
assert_eq!(&session.get::<String>("key").unwrap(), "value");

依赖项

~13–24MB
~381K SLoC