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

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for RedisStack

source§

fn default() -> RedisStack

Returns the “default value” for a type. Read more
source§

impl Image for RedisStack

§

type Args = ()

A type representing the arguments for an Image. Read more
source§

fn name(&self) -> String

The name of the docker image to pull from the Docker Hub registry.
source§

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>

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)> + '_>

There are a couple of things regarding the environment variables of images: Read more
source§

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>

Returns the entrypoint this instance was created with.
source§

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>

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§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.