Script

Struct Script 

Source
pub struct Script { /* private fields */ }
Expand description

A Lua script that can be executed on Redis

Implementations§

Source§

impl Script

Source

pub fn new(source: impl Into<String>) -> Self

Create a new script from Lua source code

The script is automatically hashed for use with EVALSHA.

§Examples
use redis_oxide::Script;

let script = Script::new("return redis.call('GET', KEYS[1])");
println!("Script SHA: {}", script.sha());
Source

pub fn sha(&self) -> &str

Get the SHA1 hash of the script

Source

pub fn source(&self) -> &str

Get the source code of the script

Source

pub async fn execute<T>( &self, client: &Client, keys: Vec<String>, args: Vec<String>, ) -> RedisResult<T>

Execute the script on the given client

This method will first try to use EVALSHA (if the script is cached on the server), and fall back to EVAL if the script is not cached.

§Arguments
  • client - The Redis client to execute the script on
  • keys - List of Redis keys that the script will access (KEYS array in Lua)
  • args - List of arguments to pass to the script (ARGV array in Lua)
§Examples
let script = Script::new("return KEYS[1] .. ':' .. ARGV[1]");

let result: String = script.execute(
    &client,
    vec!["user".to_string()],
    vec!["123".to_string()]
).await?;

assert_eq!(result, "user:123");
Source

pub async fn load(&self, client: &Client) -> RedisResult<String>

Load the script into Redis cache

This sends the script to Redis using SCRIPT LOAD, which caches it for future EVALSHA calls.

§Examples
let script = Script::new("return 'Hello, World!'");

// Preload the script
let sha = script.load(&client).await?;
println!("Script loaded with SHA: {}", sha);

Trait Implementations§

Source§

impl Clone for Script

Source§

fn clone(&self) -> Script

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Script

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Script

§

impl RefUnwindSafe for Script

§

impl Send for Script

§

impl Sync for Script

§

impl Unpin for Script

§

impl UnwindSafe for Script

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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>,

Source§

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more