-
Notifications
You must be signed in to change notification settings - Fork 37
/
HashExample.cs
129 lines (113 loc) · 3.65 KB
/
HashExample.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
// EXAMPLE: hash_tutorial
// HIDE_START
using NRedisStack.Tests;
using StackExchange.Redis;
//REMOVE_START
namespace Doc;
[Collection("DocsTests")]
//REMOVE_END
public class HashExample
{
[SkipIfRedis(Is.OSSCluster)]
public void run()
{
var muxer = ConnectionMultiplexer.Connect("localhost:6379");
var db = muxer.GetDatabase();
db.KeyDelete("bike:1");
//HIDE_END
//STEP_START set_get_all
db.HashSet("bike:1", new HashEntry[]
{
new HashEntry("model", "Deimos"),
new HashEntry("brand", "Ergonom"),
new HashEntry("type", "Enduro bikes"),
new HashEntry("price", 4972)
});
Console.WriteLine("Hash Created");
// Hash Created
var model = db.HashGet("bike:1", "model");
Console.WriteLine($"Model: {model}");
// Model: Deimos
var price = db.HashGet("bike:1", "price");
Console.WriteLine($"Price: {price}");
// Price: 4972
var bike = db.HashGetAll("bike:1");
Console.WriteLine("bike:1");
Console.WriteLine(string.Join("\n", bike.Select(b => $"{b.Name}: {b.Value}")));
// Bike:1:
// model: Deimos
// brand: Ergonom
// type: Enduro bikes
// price: 4972
//STEP_END
//REMOVE_START
Assert.Equal(4, bike.Length);
Assert.Equal("Deimos", model);
Assert.Equal(4972, price);
//REMOVE_END
//STEP_START hmget
var values = db.HashGet("bike:1", new RedisValue[] { "model", "price" });
Console.WriteLine(string.Join(" ", values));
// Deimos 4972
//REMOVE_START
Assert.Equal("Deimos", values[0]);
Assert.Equal(4972, values[1]);
//REMOVE_END
//STEP_END
//STEP_START hincrby
var newPrice = db.HashIncrement("bike:1", "price", 100);
Console.WriteLine($"New price: {newPrice}");
//REMOVE_START
Assert.Equal(5072, newPrice);
//REMOVE_END
// New price: 5072
newPrice = db.HashIncrement("bike:1", "price", -100);
Console.WriteLine($"New price: {newPrice}");
//REMOVE_START
Assert.Equal(4972, newPrice);
//REMOVE_END
// New price: 4972
//STEP_END
//STEP_START incrby_get_mget
var rides = db.HashIncrement("bike:1", "rides");
Console.WriteLine($"Rides: {rides}");
//REMOVE_START
Assert.Equal(1, rides);
//REMOVE_END
// Rides: 1
rides = db.HashIncrement("bike:1", "rides");
Console.WriteLine($"Rides: {rides}");
//REMOVE_START
Assert.Equal(2, rides);
//REMOVE_END
// Rides: 2
rides = db.HashIncrement("bike:1", "rides");
Console.WriteLine($"Rides: {rides}");
//REMOVE_START
Assert.Equal(3, rides);
//REMOVE_END
// Rides: 3
var crashes = db.HashIncrement("bike:1", "crashes");
Console.WriteLine($"Crashes: {crashes}");
//REMOVE_START
Assert.Equal(1, crashes);
//REMOVE_END
// Crashes: 1
var owners = db.HashIncrement("bike:1", "owners");
Console.WriteLine($"Owners: {owners}");
//REMOVE_START
Assert.Equal(1, owners);
//REMOVE_END
// Owners: 1
var stats = db.HashGet("bike:1", new RedisValue[] { "crashes", "owners" });
Console.WriteLine($"Bike stats: crashes={stats[0]}, owners={stats[1]}");
//REMOVE_START
Assert.Equal(1, stats[0]);
Assert.Equal(1, stats[1]);
//REMOVE_END
// Bike stats: crashes=1, owners=1
//STEP_END
//HIDE_START
}
}
//HIDE_END