1 module example; 2 import hunt.cache; 3 4 5 struct Student 6 { 7 ulong ID; 8 string name; 9 string address; 10 } 11 12 class Grade 13 { 14 int gradeLevel; 15 string gradeName; 16 Student[] arrStu; 17 } 18 19 20 import std.conv; 21 22 void example(UCache cache) 23 { 24 import std.stdio; 25 //string 26 27 cache.put!string("test" , "teststring"); 28 string val = cache.get!string("test"); 29 30 31 cache.put!string("test1" ,""); 32 auto val2 = cache.get_ex!string("test1"); 33 assert(!val2.isnull); 34 35 36 //student. 37 Student stu1; 38 stu1.ID = 1; 39 stu1.name = "tom"; 40 stu1.address = "Tianlin Road 1016"; 41 cache.put!Student("tom" , stu1); 42 43 Student stu = cache.get!Student("tom"); 44 45 Nullable!Student nstu = cache.get_ex!Student("tom"); 46 assert(!nstu.isnull); 47 48 Student stu2 = nstu.origin; 49 Student stu3 = cast(Student)nstu; 50 assert(stu2 == stu); 51 assert(stu2 == stu); 52 assert(stu3 == stu); 53 54 auto nstu2 = cache.get!Student("jacker"); 55 assert(nstu2 == Student.init); 56 57 Nullable!Student nstu3 = cache.get_ex!Student("test"); 58 assert(nstu3.isnull); 59 60 //Grade 61 Grade grade = new Grade(); 62 grade.gradeLevel = 12; 63 grade.gradeName = "13"; 64 grade.arrStu ~= stu1; 65 66 cache.put!Grade("13" , grade); 67 68 69 auto gra = cache.get!Grade("tom"); 70 assert(gra is null); 71 72 auto gra1 = cache.get!Grade("13"); 73 assert(gra1 !is null); 74 writeln(gra1.gradeLevel , " " , gra1.gradeName , " " , gra1.arrStu); 75 76 } 77 78 79 void example2() 80 { 81 CacheManger manger = new CacheManger(); 82 83 manger.createCache("default"); 84 85 manger.createCache("myredis" , "redis" , "127.0.0.1:6379"); 86 manger.createCache("myreids_l2" , "redis" , "127.0.0.1:6379" ,true); 87 88 manger.createCache("mymemcached" , "memcached" , "--server=127.0.0.1:11211"); 89 90 example(manger.getCache("default")); 91 92 example(manger.getCache("myredis")); 93 94 example(manger.getCache("myreids_l2")); 95 96 example(manger.getCache("mymemcached")); 97 98 } 99 100 /* 101 void example3(UCache cache) 102 { 103 const int i = 12; 104 cache.put!int("count" , i); 105 cache.put("count_const" , i); 106 assert(cast(int)cache.get!int("count_const") == i); 107 }*/ 108 109 110 111 int main() 112 { 113 auto cache = UCache.CreateUCache(); 114 115 example(cache); 116 117 example2(); 118 119 120 return 0; 121 122 }