记录一下Redis的安装与基本使用redis
Redis(REmote DIctionary Server)远程字典服务器,免费开源,是一个高性能的(Key/Value)分布式内存数据库。其特色为,数据类型丰富,各类各样的问题均可以映射到这些数据结构中,Redis数据结构致力于解决用户问题,性能方面,Redis支持集群加之自己做为内存数据库咱们能够很方便的进行每秒数千万的访问,而且Redis支持数据持久化,能够将内存中的数据保存到磁盘中,重启的时候能够再次加载使用,集群方面Redis支持数据备份和容灾恢复,保证了高可用,支持多种语言接口,支持事务、发布订阅等功能,整体性价比较高。数据库
下载地址 https://pan.baidu.com/s/1mlv6OdLhbzofYcM2D--hIwwindows
提取码 ly4i服务器
1.Windows服务启动Redis数据结构
2.手动启动Redis app
1.链接Redisdom
redis-cli.exe -h 127.0.0.1 -p 6380 -a abc+2015
2.设置与获取String异步
set holecu 25 get holecu
3.设置与获取List分布式
rpush list 1,2,3 rpush list 4 lrange list 0 1
4.控制台命令执行界面工具
1.下载地址
下载地址 https://pan.baidu.com/s/1_OtZ14_7M4F7NPMZQuDF8g
提取码 1y5c
2.登入链接
3. Key/Val操做界面
1.Nuget StackExchange.Redis与Newtonsoft.Json
2.C# Redis 基本操做
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using StackExchange.Redis; using Newtonsoft.Json; namespace RedisDemo { class Program { static void Main(string[] args) { //127.0.0.1:6379:IP,端口 //password:Redis密码 //connectTimeout:链接超时时间,这里设置的是1000毫秒 //connectRetry:重试链接次数 //syncTimeout:同步操做默认超时时间 ConnectionMultiplexer _conn = ConnectionMultiplexer.Connect("127.0.0.1:6380,password=abc+2015,connectTimeout=1000,connectRetry=1,syncTimeout=1000"); var db = _conn.GetDatabase(5);//指定链接库 5 //存取单值 db.StringSet("表面处理", "沉金"); string str = db.StringGet("表面处理"); db.StringSet("板厚", 1.0, TimeSpan.FromSeconds(60)); //设置60秒过时 //单值递增或递减 var intA = db.StringIncrement("Increment", 2);//Redis值 递增2 var intB = db.StringDecrement("Decrement", 1);//Redis值 递减1 //存取对象 mktxhglb model1 = new mktxhglb() { pdctno = "at00101ca0", LayerNum = 10, BoardThick = 1.0, SurfaceType = "沉金" }; string modelJson1 = JsonConvert.SerializeObject(model1); db.StringSet("mktxhglb", modelJson1); string modelJson2 = db.StringGet("mktxhglb"); mktxhglb model2 = JsonConvert.DeserializeObject<mktxhglb>(modelJson2); //存取List db.ListRightPush("list", 1); //尾 追加值 db.ListRightPush("list", 2); //尾 追加值 db.ListLeftPush("list", 10); //顶 追加值 db.ListLeftPush("list", 20); //顶 追加值 var list = db.ListRange("list"); //获取list列表 20,10,1,2 var rightPop = db.ListRightPop("list");//尾 取出值 2 var leftpop = db.ListLeftPop("list"); //顶 取出值 20 //哈希(Redis自己是key/value,至关于Value中再嵌入一层key/value) db.HashSet("产品信息", "板长", 200); db.HashSet("产品信息", "板宽", 150); db.HashSet("产品信息", "板厚", 1.0); db.HashSet("产品信息", "表面处理", "沉锡"); var HashList = db.HashGetAll("产品信息");//获取全部Hash foreach (var item in HashList) { Console.WriteLine($"产品信息 {item.Name} { item.Value}"); } var BoardLenght = db.HashGet("产品信息", "板长"); //消息发布与订阅 和MQ消息队列功能 ISubscriber Subscriber = _conn.GetSubscriber(); //订阅消息 pcbren.Channel通道 Subscriber.Subscribe("pcbren.Channel", new Action<RedisChannel, RedisValue>((channel, msg) => { Console.WriteLine($"收到消息:" + msg); })); //发送消息 pcbren.Channel通道 Subscriber.Publish("pcbren.Channel", $"发送信息 {DateTime.Now}"); //取消订阅 Subscriber.Unsubscribe("pcbren.Channel"); //批量操做 var bat = db.CreateBatch(); //批量写 Task t1 = bat.StringSetAsync("孔铜", 25); Task t2 = bat.StringSetAsync("面铜", 63); bat.Execute(); Task.WaitAll(t1, t2); //批量读 List<Task<RedisValue>> valueList = new List<Task<RedisValue>>(); valueList.Add(bat.StringGetAsync("孔铜")); valueList.Add(bat.StringGetAsync("面铜")); bat.Execute(); } } public class mktxhglb { /// <summary> /// 生产型号 /// </summary> public string pdctno { get; set; } /// <summary> /// 层数 /// </summary> public int LayerNum { get; set; } /// <summary> /// 板厚 /// </summary> public double BoardThick { get; set; } /// <summary> /// 表面处理类型 /// </summary> public string SurfaceType { get; set; } } }
3.StackExchange.Redis Demo (C#)
地址 https://pan.baidu.com/s/1rn8GhiszkDQ7ccrqNcNYYA
提取码 jsue
redis.windows.conf 配置文件参数说明
daemonize:如须要在后台运行,把该项的值改成yes
pdifile:把pid文件放在/var/run/redis.pid,能够配置到其余地址
bind:指定redis只接收来自该IP的请求,若是不设置,那么将处理全部请求,在生产环节中最好设置该项
port:监听端口,默认为6379
timeout:设置客户端链接时的超时时间,单位为秒
loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下通常开启notice
logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上
database:设置数据库的个数,默认使用的数据库是0
save:设置redis进行数据库镜像的频率
rdbcompression:在进行镜像备份时,是否进行压缩
dbfilename:镜像备份文件的文件名
dir:数据库镜像备份的文件放置的路径
slaveof:设置该数据库为其余数据库的从数据库
masterauth:当主数据库链接须要密码验证时,在这里设定
requirepass:设置客户端链接后进行任何其余指定前须要使用的密码
maxclients:限制同时链接的客户端数量
maxmemory:设置redis可以使用的最大内存
appendonly:开启appendonly模式后,redis会把每一次所接收到的写操做都追加到appendonly.aof文件中,当redis从新启动时,会从该文件恢复出以前的状态
appendfsync:设置appendonly.aof文件进行同步的频率
vm_enabled:是否开启虚拟内存支持
vm_swap_file:设置虚拟内存的交换文件的路径
vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0
vm_page_size:设置虚拟内存页的大小
vm_pages:设置交换文件的总的page数量
vm_max_thrrads:设置vm IO同时使用的线程数量