extra.redis.assoc: Assoc protocol implementation for Redis
parent
4173f99849
commit
d45d63715b
|
@ -0,0 +1,41 @@
|
|||
! Copyright (C) 2009 Bruno Deferrari
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors assocs io.encodings.8-bit io.sockets
|
||||
io.streams.duplex kernel redis sequences ;
|
||||
IN: redis.assoc
|
||||
|
||||
TUPLE: redis-assoc host port encoding password ;
|
||||
|
||||
CONSTANT: default-redis-port 6379
|
||||
|
||||
: <redis-assoc> ( -- redis-assoc )
|
||||
redis-assoc new
|
||||
"127.0.0.1" >>host
|
||||
default-redis-port >>port
|
||||
latin1 >>encoding ;
|
||||
|
||||
INSTANCE: redis-assoc assoc
|
||||
|
||||
: with-redis-assoc ( redis-assoc quot -- )
|
||||
[
|
||||
[ host>> ] [ port>> ] [ encoding>> ] tri
|
||||
[ <inet> ] dip <client> drop
|
||||
] dip with-stream ; inline
|
||||
|
||||
M: redis-assoc at* [ redis-get dup >boolean ] with-redis-assoc ;
|
||||
|
||||
M: redis-assoc assoc-size [ redis-dbsize ] with-redis-assoc ;
|
||||
|
||||
M: redis-assoc >alist
|
||||
[ "*" redis-keys dup redis-mget zip ] with-redis-assoc ;
|
||||
|
||||
M: redis-assoc set-at [ redis-set drop ] with-redis-assoc ;
|
||||
|
||||
M: redis-assoc delete-at [ redis-del drop ] with-redis-assoc ;
|
||||
|
||||
M: redis-assoc clear-assoc
|
||||
[ "*" redis-keys [ redis-del drop ] each ] with-redis-assoc ;
|
||||
|
||||
M: redis-assoc equal? assoc= ;
|
||||
|
||||
M: redis-assoc hashcode* assoc-hashcode ;
|
|
@ -0,0 +1 @@
|
|||
Bruno Deferrari
|
|
@ -0,0 +1 @@
|
|||
Assoc protocol implementation for Redis
|
Loading…
Reference in New Issue