memory_test.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package cache
  2. import (
  3. "fmt"
  4. "testing"
  5. "time"
  6. )
  7. func TestMemorySet(t *testing.T) {
  8. mc := NewMemoryCache(0)
  9. err := mc.Set("123", "44567", 0)
  10. if err != nil {
  11. fmt.Println(err.Error())
  12. t.Fatalf("写入失败")
  13. }
  14. }
  15. func TestMemoryGet(t *testing.T) {
  16. mc := NewMemoryCache(0)
  17. mc.Set("123", "44567", 0)
  18. res := ""
  19. err := mc.Get("123", &res)
  20. fmt.Println("res", res)
  21. if err != nil {
  22. t.Fatalf("读取失败 " + err.Error())
  23. }
  24. if res != "44567" {
  25. t.Fatalf("读取错误")
  26. }
  27. }
  28. func TestMemorySetExpGet(t *testing.T) {
  29. mc := NewMemoryCache(0)
  30. //mc.stopEviction()
  31. mc.Set("1", "10", 10)
  32. mc.Set("2", "5", 5)
  33. err := mc.Set("3", "3", 3)
  34. if err != nil {
  35. t.Fatalf("写入失败")
  36. }
  37. res := ""
  38. err = mc.Get("3", &res)
  39. if err != nil {
  40. t.Fatalf("读取失败" + err.Error())
  41. }
  42. fmt.Println("res 3", res)
  43. time.Sleep(4 * time.Second)
  44. //res = ""
  45. err = mc.Get("3", &res)
  46. if err != nil {
  47. t.Fatalf("读取失败" + err.Error())
  48. }
  49. fmt.Println("res 3", res)
  50. err = mc.Get("2", &res)
  51. if err != nil {
  52. t.Fatalf("读取失败" + err.Error())
  53. }
  54. fmt.Println("res 2", res)
  55. err = mc.Get("1", &res)
  56. if err != nil {
  57. t.Fatalf("读取失败" + err.Error())
  58. }
  59. fmt.Println("res 1", res)
  60. }
  61. func TestMemoryLru(t *testing.T) {
  62. mc := NewMemoryCache(18)
  63. mc.Set("1", "1111", 10)
  64. mc.Set("2", "2222", 5)
  65. //读取一次,2就会被放到最后
  66. mc.Get("1", nil)
  67. err := mc.Set("3", "三", 3)
  68. if err != nil {
  69. //t.Fatalf("写入失败")
  70. }
  71. res := ""
  72. err = mc.Get("3", &res)
  73. if err != nil {
  74. t.Fatalf("读取失败" + err.Error())
  75. }
  76. fmt.Println("res3", res)
  77. res = ""
  78. err = mc.Get("2", &res)
  79. if err != nil {
  80. t.Fatalf("读取失败" + err.Error())
  81. }
  82. fmt.Println("res2", res)
  83. res = ""
  84. err = mc.Get("1", &res)
  85. if err != nil {
  86. t.Fatalf("读取失败" + err.Error())
  87. }
  88. fmt.Println("res1", res)
  89. }
  90. func BenchmarkMemorySet(b *testing.B) {
  91. mc := NewMemoryCache(0)
  92. b.ResetTimer()
  93. for i := 0; i < b.N; i++ {
  94. key := fmt.Sprintf("key%d", i)
  95. value := fmt.Sprintf("value%d", i)
  96. mc.Set(key, value, 1000)
  97. }
  98. }