Struct actix_session::storage::RedisSessionStore
source · pub struct RedisSessionStore { /* private fields */ }
Expand description
Use Redis as session storage backend.
use actix_web::{web, App, HttpServer, HttpResponse, Error};
use actix_session::{SessionMiddleware, storage::RedisSessionStore};
use actix_web::cookie::Key;
// The secret key would usually be read from a configuration file/environment variables.
fn get_secret_key() -> Key {
// [...]
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
let secret_key = get_secret_key();
let redis_connection_string = "redis://127.0.0.1:6379";
let store = RedisSessionStore::new(redis_connection_string).await.unwrap();
HttpServer::new(move ||
App::new()
.wrap(SessionMiddleware::new(
store.clone(),
secret_key.clone()
))
.default_service(web::to(|| HttpResponse::Ok())))
.bind(("127.0.0.1", 8080))?
.run()
.await
}
§TLS support
Add the redis-rs-tls-session
or redis-rs-tls-session-rustls
feature flag to enable TLS support. You can then establish a TLS
connection to Redis using the rediss://
URL scheme:
use actix_session::{storage::RedisSessionStore};
let redis_connection_string = "rediss://127.0.0.1:6379";
let store = RedisSessionStore::new(redis_connection_string).await.unwrap();
§Implementation notes
RedisSessionStore
leverages redis-rs
as Redis client.
Implementations§
source§impl RedisSessionStore
impl RedisSessionStore
sourcepub fn builder<S: Into<String>>(
connection_string: S,
) -> RedisSessionStoreBuilder
pub fn builder<S: Into<String>>( connection_string: S, ) -> RedisSessionStoreBuilder
A fluent API to configure RedisSessionStore
.
It takes as input the only required input to create a new instance of RedisSessionStore
- a
connection string for Redis.
sourcepub async fn new<S: Into<String>>(
connection_string: S,
) -> Result<RedisSessionStore, Error>
pub async fn new<S: Into<String>>( connection_string: S, ) -> Result<RedisSessionStore, Error>
Create a new instance of RedisSessionStore
using the default configuration.
It takes as input the only required input to create a new instance of RedisSessionStore
- a
connection string for Redis.
Trait Implementations§
source§impl Clone for RedisSessionStore
impl Clone for RedisSessionStore
source§fn clone(&self) -> RedisSessionStore
fn clone(&self) -> RedisSessionStore
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl SessionStore for RedisSessionStore
impl SessionStore for RedisSessionStore
source§async fn load(
&self,
session_key: &SessionKey,
) -> Result<Option<HashMap<String, String>>, LoadError>
async fn load( &self, session_key: &SessionKey, ) -> Result<Option<HashMap<String, String>>, LoadError>
Loads the session state associated to a session key.
source§async fn save(
&self,
session_state: HashMap<String, String>,
ttl: &Duration,
) -> Result<SessionKey, SaveError>
async fn save( &self, session_state: HashMap<String, String>, ttl: &Duration, ) -> Result<SessionKey, SaveError>
Persist the session state for a newly created session. Read more
source§async fn update(
&self,
session_key: SessionKey,
session_state: HashMap<String, String>,
ttl: &Duration,
) -> Result<SessionKey, UpdateError>
async fn update( &self, session_key: SessionKey, session_state: HashMap<String, String>, ttl: &Duration, ) -> Result<SessionKey, UpdateError>
Updates the session state associated to a pre-existing session key.
source§async fn update_ttl(
&self,
session_key: &SessionKey,
ttl: &Duration,
) -> Result<(), Error>
async fn update_ttl( &self, session_key: &SessionKey, ttl: &Duration, ) -> Result<(), Error>
Updates the TTL of the session state associated to a pre-existing session key.
Auto Trait Implementations§
impl Freeze for RedisSessionStore
impl !RefUnwindSafe for RedisSessionStore
impl Send for RedisSessionStore
impl Sync for RedisSessionStore
impl Unpin for RedisSessionStore
impl !UnwindSafe for RedisSessionStore
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more