7.8

top ← prev up next →

memcached

Jay McCarthy <jay@racket-lang.org>

This package provides an interface to memcached.

1 Low level Interface

At the moment, only a low-level interface is provided.

Identifies memcached pool structures.

procedure (memcached ip port ) → memcached-pool? ip : string? port : ( and/c exact-nonnegative-integer? ( integer-in 1 65535 ) )

Establishes TCP connections to the specified servers at the respective ports. However, only the first connection is used.

This function should be modified to support UDP connections and its internals should be adapted to use all connections in the recommended way.

bytes? Corresponds to

bytes? Corresponds to

bytes? Corresponds toguaranteed to be 8 bytes long.

exact-nonnegative-integer? Corresponds to

exact-nonnegative-integer? Corresponds to

The null CAS, suitable for use when the CAS is unknown or when you don’t care.

Retrieves the key’s value and CAS.

procedure ( memcached-set! mp k v [ #:expiration exp #:cas cas ] ) → ( or/c false/c cas? ) mp : memcached-pool? k : key? v : value? exp : uint4? = 0 cas : cas? = empty-cas

Sets the key to the value with the expiration time if the CAS is still the same, returning the new CAS.

Sets the key to the value with the expiration time if it is not bound, returning the new CAS.

procedure ( memcached-replace! mp k v [ #:expiration exp #:cas cas ] ) → ( or/c false/c cas? ) mp : memcached-pool? k : key? v : value? exp : uint4? = 0 cas : cas? = empty-cas

Sets the key to the value with the expiration time if the CAS is still the same and it is bound, returning the new CAS.

Deletes the key if the CAS is still the same.

procedure ( memcached-incr! k [ #:amount amt #:initial init #:expiration exp #:cas cas ] ) → ( or/c false/c uint8? ) k : key? amt : uint8? = 1 init : false/c = #f exp : uint4? = 0 cas : cas? = empty-cas

Increments the key’s value by the amount with the expiration time if the CAS is still the same and it is bound, returning the new value as an integer.

procedure ( memcached-decr! k [ #:amount amt #:initial init #:expiration exp #:cas cas ] ) → ( or/c false/c uint8? ) k : key? amt : uint8? = 1 init : false/c = #f exp : uint4? = 0 cas : cas? = empty-cas

Decrements the key’s value by the amount with the expiration time if the CAS is still the same and it is bound, returning the new value as an integer.

These two functions have a more restrictive contract on the initial value than the API because I do not understand them enough to decide if the contract should be uint8? or value?.

Appends the value to the key’s current value if the CAS is still the same, returning the new CAS.

Prepends the value to the key’s current value if the CAS is still the same, returning the new CAS.