aboutsummaryrefslogtreecommitdiff
path: root/examples/redis.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'examples/redis.tcl')
-rw-r--r--examples/redis.tcl54
1 files changed, 54 insertions, 0 deletions
diff --git a/examples/redis.tcl b/examples/redis.tcl
new file mode 100644
index 0000000..3044ab8
--- /dev/null
+++ b/examples/redis.tcl
@@ -0,0 +1,54 @@
+#!/usr/bin/env jimsh
+
+# A simple test of the redis extension
+
+# Requires the redis extension
+package require redis
+
+# A redis server should be running either on localhost 6379
+# or on the given address (e.g. host:port)
+try {
+ lassign $argv addr
+ if {$addr eq ""} {
+ set addr localhost:6379
+ }
+ set r [redis [socket stream $addr]]
+} on error msg {
+ puts [errorInfo $msg]
+ exit 1
+}
+
+puts "KEYS: [$r KEYS *]"
+
+# Set a hash
+set env(testing) yes
+$r HMSET env {*}$env
+
+set result [$r HGET env testing]
+puts "HGET: testing=$result"
+
+set size [$r HLEN env]
+puts "Size of env is $size"
+
+set time [time {
+ $r HGETALL env
+} 100]
+puts "HGETALL: $time"
+
+# a multi-command transation
+$r MULTI
+$r SET a A1
+$r SET b B2
+$r EXEC
+puts "MGET: [$r MGET a b]"
+
+# disard
+$r MULTI
+$r SET a ~A1
+$r SET b ~B2
+$r DISCARD
+puts "MGET (DISCARD): [$r MGET a b]"
+
+set result [$r HGET env testing]
+
+$r close