Struct testcontainers_modules::redis::RedisStack
source · pub struct RedisStack;
Available on crate feature
redis
only.Expand description
Module to work with Redis Stack
inside of tests.
Starts an instance of Redis Stack based on the official Redis Stack docker image
.
By default Redis is exposed on Port 6379 (REDIS_PORT
) and has no access control. Please refer to the Redis reference guide
for more informations on how to interact with the API.
§Example
use redis::JsonCommands;
use serde_json::json;
use testcontainers::clients;
use testcontainers_modules::redis::{RedisStack, REDIS_PORT};
let docker = clients::Cli::default();
let redis_instance = docker.run(RedisStack);
let host_port = redis_instance.get_host_port_ipv4(REDIS_PORT);
let url = format!("redis://127.0.0.1:{host_port}");
let client = redis::Client::open(url.as_ref()).unwrap();
let mut con = client.get_connection().unwrap();
con.json_set::<_,_,_,()>("my_key", "$", &json!({ "number": 42 })).unwrap();
let result: String = con.json_get("my_key", "$..number").unwrap();
Trait Implementations§
source§impl Debug for RedisStack
impl Debug for RedisStack
source§impl Default for RedisStack
impl Default for RedisStack
source§fn default() -> RedisStack
fn default() -> RedisStack
Returns the “default value” for a type. Read more
source§impl Image for RedisStack
impl Image for RedisStack
source§fn tag(&self) -> String
fn tag(&self) -> String
Implementations are encouraged to include a tag that will not change (i.e. NOT latest)
in order to prevent test code from randomly breaking because the underlying docker
suddenly changed.
source§fn ready_conditions(&self) -> Vec<WaitFor>
fn ready_conditions(&self) -> Vec<WaitFor>
Returns a list of conditions that need to be met before a started container is considered ready. Read more
source§fn env_vars(&self) -> Box<dyn Iterator<Item = (&String, &String)> + '_>
fn env_vars(&self) -> Box<dyn Iterator<Item = (&String, &String)> + '_>
There are a couple of things regarding the environment variables of images: Read more
source§fn volumes(&self) -> Box<dyn Iterator<Item = (&String, &String)> + '_>
fn volumes(&self) -> Box<dyn Iterator<Item = (&String, &String)> + '_>
There are a couple of things regarding the volumes of images: Read more
source§fn entrypoint(&self) -> Option<String>
fn entrypoint(&self) -> Option<String>
Returns the entrypoint this instance was created with.
source§fn expose_ports(&self) -> Vec<u16>
fn expose_ports(&self) -> Vec<u16>
Returns the ports that needs to be exposed when a container is created. Read more
source§fn exec_after_start(&self, cs: ContainerState) -> Vec<ExecCommand>
fn exec_after_start(&self, cs: ContainerState) -> Vec<ExecCommand>
Returns the commands that needs to be executed after a container is started i.e. commands
to be run in a running container. Read more
Auto Trait Implementations§
impl RefUnwindSafe for RedisStack
impl Send for RedisStack
impl Sync for RedisStack
impl Unpin for RedisStack
impl UnwindSafe for RedisStack
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