String类型
(1).StringSet:写入数据,如果数据已经存在,则覆盖;可以一次性存入1个key-value,也可以一次性存入多个Key-value集合,并且可以设置其过期时间。
(2).StringGet:读取数据,可以一次性读取一个key的value,也可以一次性读取多个key对应的value的集合。
(3).StringAppend:在原有值的基础上进行拼接追加.
(4).StringLength:获取值的长度
(5).StringIncrement:数值自增n,返回自增后的值
(6).StringDecrement:数值自减n,返回自减后的值
//1. 最简单的key-value的添加,如果该key已存在,则替换;可以设置过期时间哦
bool a1 = db.StringSet("101", "f");
//2. 根据key获取值
string data1 = db.StringGet("101");
//3. 在原有的value上进行追加,返回值是最终字符串的长度,如果没有这个key,则当做一个新的key进行添加
long length1 = db.StringAppend("101", "wj");//3
//4. 获取值的长度
long length2 = db.StringLength("101");//3
//获取值
string data2 = db.StringGet("101");//fwj
//5. 数值自增/减
db.StringSet("102", 10);
//自增2,可以自增负值
var data4 = db.StringIncrement("102", 2);
//自减5
var data5 = db.StringDecrement("102", 5);
//6. 插入实体和读取实体 (需要序列化和反序列化)
//由于序列化的原因,肯定不如存到Hash里速度快
People people = new People()
ID = 1,
Gender = true,
Name = "fan1",
Birthday = DateTime.Now
db.StringSet("people_101", JsonConvert.SerializeObject(people));
People data6 = JsonConvert.DeserializeObject<People>(db.StringGet("people_101"));
//7. 一次性添加多个key-value集合
Dictionary<string, string> dic = new Dictionary<string, string>();
dic.Add("103", Guid.NewGuid().ToString("N"));
dic.Add("104", Guid.NewGuid().ToString("N"));
dic.Add("105", Guid.NewGuid().ToString("N"));
dic.Add("106", Guid.NewGuid().ToString("N"));
dic.Add("107", Guid.NewGuid().ToString("N"));
dic.Add("108", Guid.NewGuid().ToString("N"));
var keyValues = dic.Select(p => new KeyValuePair<RedisKey, RedisValue>(p.Key, p.Value)).ToArray();
bool data7 = db.StringSet(keyValues);
//8.获取多个key的 value值集合
string[] keys = { "101", "102", "103" };
RedisKey[] redisKeys = keys.Select(u => (RedisKey)u).ToArray();
//此处如果是别的复杂类型要借助JsonConvert进行转换
List<string> data8 = db.StringGet(redisKeys).Select(u => u.ToString()).ToList();
通用API
(1).Execute("FLUSHDB"):删除所有数据,类似SqlServer的truncate
(2).KeyDelete:根据key删除数据,可以删除单个key,也可以删除多个key
(3).KeyExists:判断key是否存在,也可以单个key或者多个key
(4).KeyRename:重命名key
(5).KeyExpire:设置对应key的的过期时间
//1. 删除单个key
bool d1 = db.KeyDelete("101"); //删除成功,返回true
bool d2 = db.KeyDelete("ffff"); //删除不存在的数据,返回false
//3. 删除多个key
string[] arry = { "102", "103", "104" };
RedisKey[] keys = arry.Select(u => (RedisKey)u).ToArray();
long d3 = db.KeyDelete(keys); //返回的是删除成功的个数
//4. 判断key是否存在(不推荐使用,会有并发问题)
bool d4 = db.KeyExists("102");
bool d5 = db.KeyExists("105");
//5. 重命名key
bool d6 = db.KeyRename("108", "10086");
//6. 设置key的过期时间(1分钟后自动销毁)
bool d7 = db.KeyExpire("107", DateTime.Now.AddMinutes(1));
//7. 删除所有数据
db.Execute("FLUSHDB");
Hash类型
(1).HashSet:存储单个 hashid-key-value
(2).HashGet:单个value的获取; 获取1个hashid对应的所有key集合; 获取1个hashid对应所有的key和value集合.
(3).HashDelete:删除1个hashid-key; 删除1个hashid-多个key
(4).HashIncrement:自增,返回自增后的值
(5).HashDecrement:自减,返回自减后的值
(6).HashExists:判断 hashid-key 是否存在,返回true和value
//1.添加
db.HashSet("People_001", "id", 1);
db.HashSet("People_001", "gender", 1);
db.HashSet("People_001", "name", "fan");
db.HashSet("People_001", "birthday", DateTime.Now.ToString());
db.HashSet("People_001", "name", "fan1"); //会覆盖上面的值
//批量添加
var hashEntries = new HashEntry[] { new HashEntry("id", 2), new HashEntry("gender", 1), new HashEntry("name", "fan2"), new HashEntry("birthday", DateTime.Now.AddYears(-10).ToString()) };
db.HashSet("People_002", hashEntries);
//2.获取
//2.1 单个value的获取
int id = (int)db.HashGet("People_001", "id");
string name = db.HashGet("People_001", "name");
//2.2 获取1个hashid对应所有的key的集合
List<string> keyList = db.HashKeys("People_001").Select(k => (string)k).ToList();
//2.3 获取hashid对应的所有key和value
Dictionary<string, object> dic = new Dictionary<string, object>();
foreach (var item in db.HashGetAll("People_001"))
dic.Add(item.Name, item.Value);
//没法一下获取一个实体
//3. 删除
//单个key
bool d1 = db.HashDelete("People_002", "name");
//多个key
string[] dataKeyArry = { "gender", "name", "birthday" };
RedisValue[] redisValueArry = dataKeyArry.Select(u => (RedisValue)u).ToArray();
long deleteNum = db.HashDelete("People_002", redisValueArry);
//4. 自增,自减, 返回自增或自减后的值
db.HashSet("People_002", "age", 20);
long d2 = db.HashIncrement("People_002", "age", 2); //自增2,返回值为22
long d3 = db.HashDecrement("People_002", "age", 3); //自减3,返回值为19
//5. 判断数据是否存在
bool d4 = db.HashExists("People_002", "age");
bool d5 = db.HashExists("People_002", "age2");