Celso Axelrud
11/23/2012
(Also available as Skydrive MSWord at https://skydrive.live.com/#!/edit.aspx?cid=BDC87EF39B001785&resid=BDC87EF39B001785%211518&app=Word&nd=1)
This document reports results related to testing Redis in Windows with F#.
Redis for Windows is available for download from Microsoft Open Technologies Inc. at https://github.com/MSOpenTech.
The Redis server was started using redis-server.exe at a command prompt window.
The tests were performed using F# interactive inside Visual Studio Express 2012 for Web.
The Redis .NET driver used was from ServiceStack (https://github.com/ServiceStack/ServiceStack.Redis ) and downloaded from https://github.com/ServiceStack/ServiceStack.Redis/downloads .
The tests were based on the C# example from https://github.com/ServiceStack/ServiceStack.Redis/tree/master/tests/ServiceStack.Redis.Tests/Examples .
The following script shows the tests:
// Redis - example from
//C:\opentech\ServiceStack.Redis-master\ServiceStack.Redis-master\tests\ServiceStack.Redis.Tests\Examples\TodoApp.cs
// System
open System
open System.Collections.Generic
#r "C:\opentech\ServiceStack.Redis-v3.9.28\ServiceStack.Common.dll"
#r "C:\opentech\ServiceStack.Redis-v3.9.28\ServiceStack.Interfaces.dll"
#r "C:\opentech\ServiceStack.Redis-v3.9.28\ServiceStack.Text.dll"
#r "C:\opentech\ServiceStack.Redis-v3.9.28\ServiceStack.Redis.dll"
open ServiceStack.Common.Extensions
open ServiceStack.Text
open ServiceStack.Redis
type Todo= {mutable Id:int64; mutable Content:string;mutable Order:int;mutable Done:bool}
let redisClient = new RedisClient("localhost") //6379
redisClient.FlushAll();;
let redisTodos = redisClient.As<Todo>();;
(*> val redisTodos : Generic.IRedisTypedClient<Todo> *)
let todo= {Id=redisTodos.GetNextSequence();Content = "Learn Redis";Order = 1;Done=false};;
(*> val todo : Todo = {Id = 1L;
Content = "Learn Redis";
Order = 1;
Done = false;} *)
redisTodos.Store(todo);;
let savedTodo = redisTodos.GetById(todo.Id);;
(*> val savedTodo : Todo = {Id = 1L;
Content = "Learn Redis";
Order = 1;
Done = false;} *)
let allTodos = redisTodos.GetAll();;
assert(allTodos.Count=1);;
[for i in allTodos -> i.Content];;
(*> val it : string list = ["Learn Redis"] *)
savedTodo.Done <- span="span">->true;;
redisTodos.Store(savedTodo);;
let savedTodo2 = redisTodos.GetById(todo.Id);;
(*> val savedTodo2 : Todo = {Id = 1L;
Content = "Learn Redis";
Order = 1;
Done = true;} *)
redisTodos.DeleteById(savedTodo.Id);;
let allTodos2 = redisTodos.GetAll()
assert(allTodos2.Count=0)
No comments:
Post a Comment