前段时间学习了Redis,一直在忙着工作和一些其他的事情,这两天有空了,就把这学习到的技术分享出来给大家,谢谢
Redis是什么?
Redis的特点
Redis使用场景
Redis数据类型
一、.Redis是什么?
Redis是一个完全免费开源的,基于内存的高性能的key-value存储系统,可以用作数据库、缓存和消息中间件。支持多种类型的数据结构.
Redis内置数据持久化、LRU驱动事件、事物、主从复制、哨兵机制、集群、自动分区、lua脚本提供高可用性..
Redis全称为:RemoteDictionaryServer(远程数据服务)
Redis是一种非关系型数据库
二、Redis的特点
Redis以内存作为数据存储介质,读写数据的效率极高。速度快:使用标准c语言编写,所有数据在内存存储,读速度:次/s写速度:次/s
Redis跟memcache不同的是,储存在Redis中的数据是持久化的,断电或重启,数据也不会丢失。
Redis的存储分为内存存储、磁盘存储和log文件。
Redis可以从磁盘重新将数据加载到内存中,也可以通过配置文件对其进行配置,因此,redis才能实现持久化。
Redis支持主从模式,可以配置集群,更利于支撑大型的项目。
Redis是单线程:一次只能执行一条命令,拒绝长命令(因为Redis基于内存,不牵扯磁盘IO操作限制)
三、Redis应用场景
缓存:配合关系型数据库做高速缓存(string),会话缓存(最常用)
消息队列
活动排行榜,计数器:用户点赞,评论数,投票,网站访问量,点击率等(zset)
发布,订阅消息(消息通知)
商品列表,评论列表
分布式锁:分布式环境下,访问共享资源(string)
分布式session:分布式环境下,需要session共享(string)
用户信息,发布文章信息等(hash)
朋友圈,微博时间线,自动补全联系人(list)
抽奖系统,给用户添加标签,给标签添加用户、共同
就会得到相应的引用
1.String
///summary///string////summarypublicstaticvoidTestString(){using(RedisClientclient=newRedisClient(".0.0.1",)){//清空Redis里面的所有缓存client.FlushAll();//存储client.Setstring("name","admin");client.Set("password","");//读取stringname=client.Getstring("name");stringpwd=client.Getstring("password");Console.WriteLine(name);Console.WriteLine(pwd);}}
//结果如图
2.Hash
///summary///Hash////summarypublicstaticvoidTestHash(){using(RedisClientclient=newRedisClient(".0.0.1",)){//清空Redis里面的所有缓存client.FlushAll();//配置数据Dictionarystring,stringdictionary=newDictionarystring,string();dictionary.Add("a","1");dictionary.Add("b","2");dictionary.Add("c","3");dictionary.Add("d","4");dictionary.Add("e","5");//缓存client.SetRangeInHash("dictionary",dictionary);//追加client.SetEntryInHash("dictionary","","fgh");//获取存入的数据Dictionarystring,stringhashData=client.GetAllEntriesFromHash("dictionary");foreach(variteminhashData){Console.WriteLine("Key是:{item.Key}------Vaule值是:{item.Value}");}}}//结果如图
3.Set
///summary///Set////summarypublicstaticvoidTestSet(){using(RedisClientclient=newRedisClient(".0.0.1",)){//清空Redis里面的所有缓存client.FlushAll();client.AddItemToSet("