Redis Windows环境安装

1、下载Windows 版本 Redis:

    https://github.com/ServiceStack/redis-windows

 

2、 解压文件:

    F:\开源代码学习\01_Redis 打开 目录:F:\开源代码学习\01_Redis\src\msopentech\redis64-2.6.12.1

3、启动Redis

    指向CMD命令:

   

4、测试安装成果:

  新建一个CMD 窗口:

  运行命令:

    

 

 5、讲Redis 加工成 windows :

namespace RedisService
{/// <summary>/// 参考文档:/// http://www.saltwebsites.com/2012/how-run-redis-service-under-windows/// /// sc create Redis start= auto DisplayName= Redis binpath= "\"C:\Program Files\Redis\RedisService.exe\" \"C:\Program Files\Redis\redis.conf\""/// /// </summary>class Program : ServiceBase{const string RedisServer = "redis-server.exe";const string RedisCLI = "redis-cli.exe";static string _path;static int _port;static void Main(string[] args){_path = AppDomain.CurrentDomain.BaseDirectory;if (!File.Exists(Path.Combine(_path, RedisServer)))Exit("Couldn`t find " + RedisServer);if (!File.Exists(Path.Combine(_path, RedisCLI)))Exit("Couldn`t find " + RedisCLI);if (Environment.UserInteractive){SetConsoleCtrlHandler(ConsoleCtrlCheck, true);//Console.CancelKeyPress += (sender, eventArgs) => StopRedis();StartRedis(args.Length == 1 ? args[0] : null);}elseRun(new Program());}protected override void OnStart(string[] args){var arguments = Environment.GetCommandLineArgs();if (arguments.Length > 2)Exit("Too many arguments");base.OnStart(args);StartRedis(arguments.Length == 2 ? arguments[1] : null);}protected override void OnStop(){base.OnStop();StopRedis();}static void StartRedis(string configPath = null){var pi = new ProcessStartInfo(Path.Combine(_path, RedisServer));if (configPath != null){FindPort(configPath);// Workaround for spaces in configuration filename.pi.Arguments = Path.GetFileName(configPath);pi.WorkingDirectory = Path.GetDirectoryName(configPath);}using (var process = new Process { StartInfo = pi }){if (process.Start())if (Environment.UserInteractive)process.WaitForExit();else{}elseExit("Failed to start Redis process");}}private static void FindPort(string path){using (var reader = new StreamReader(path)){string line;while ((line = reader.ReadLine()) != null){if (line.IndexOf("port") == 0){_port = int.Parse(line.Substring(5, line.Length - 5));break;}}if (_port == 0)Exit("Couldn`t find Redis port in config file");}}static void StopRedis(){var pi = new ProcessStartInfo(Path.Combine(_path, RedisCLI)) { Arguments = (_port == 0 ? "" : String.Format("-p {0} ", _port)) + "shutdown" };if (!(new Process { StartInfo = pi }).Start())Exit("Failed to stop Redis process");}static void Exit(string message){if (Environment.UserInteractive){Console.WriteLine(message);Environment.Exit(-1);}else{//File.WriteAllText(Path.Combine(_path, "error.txt"), message);throw new ApplicationException(message);}}[DllImport("Kernel32")]private static extern bool SetConsoleCtrlHandler(HandlerRoutine handler, bool add);// A delegate type to be used as the handler routine // for SetConsoleCtrlHandler.private delegate bool HandlerRoutine(CtrlTypes ctrlType);// An enumerated type for the control messages// sent to the handler routine.private enum CtrlTypes{CTRL_C_EVENT = 0,CTRL_BREAK_EVENT,CTRL_CLOSE_EVENT,CTRL_LOGOFF_EVENT = 5,CTRL_SHUTDOWN_EVENT}private static bool ConsoleCtrlCheck(CtrlTypes ctrlType){StopRedis();return true;}}
}

 

     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298766.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python答题系统的代码_答题辅助python代码实现

本文实例为大家分享了答题辅助python具体代码&#xff0c;供大家参考&#xff0c;具体内容如下 from screenshot import pull_screenshot import time, urllib.request try: import Image except ImportError: from PIL import Image, ImageDraw import pytesseract # 屏幕顶端…

Hello Blazor:(11)全局截获事件执行

前言在Blazor中&#xff0c;我们使用on{DOM EVENT}"{DELEGATE}"这样的Razor语法在组件标记中指定委托事件处理程序&#xff1a;<button onclick"IncrementCount">Click me</button>但是没有提供解除委托的方法。比如&#xff0c;我们需要在某种…

ActionEnglish Notes

ActionEnglish 1 1. sound engineer 录音师2. Rumor has it that * 人们都说… 据说… * Rumor has it that Andy is a nice guy. * Rumar has it that he is a rather difficult sound engineer. * 类似的还有&#xff1a;It is said that… * 类似的还有&#xff1a;it is …

Hashtable, ArrayList, List, Dictionary学习

Hashtable用法 在.NET Framework中&#xff0c;Hashtable是System.Collections命名空间提供的一个容器&#xff0c;用于处理和表现类似key/value的键值对&#xff0c;其中key通常可用来快速查找&#xff0c;同时key是区分大小写&#xff1b;value用于存储对应于key的值。Hashta…

深度学习会不会被取代?深度学习必看发展史

近年来&#xff0c;随着人工智能时代的来临&#xff0c;数据科学、计算机科学迎来飞速发展&#xff0c;多次引发讨论的人机对战也正是人工智能与人类的对决。从无人驾驶汽车到AlphaGo战胜人类&#xff0c;机器学习成为了当下最热门的技术。而机器学习中一种重要的方法就是深度学…

Xcode6中如何对scrollview进行自动布局(autolayout)

本文转载至 http://www.cocoachina.com/ios/20141011/9871.html XCodeAutolayoutscrollView Xcode6中极大的增强了IB中自动布局的能力&#xff0c;下面就通过对刺儿头scrollview进行一次自动布局实战&#xff0c;看看自动布局在Xcode6中到底值不值得使用。 说 UIScrollView是个…

linux文件读保护,Linux Rootkit实现文件保护

一个非常基础的rootkit&#xff0c;禁止读取指定文件编译系统:CentOS 7uname -r3.10.0-957.21.3-el7.x86_64#include #include #include asmlinkage long(*real_open)(const char __user *filename, int flags, unsigned short mode);unsigned long **syscall_table NULL;char…

react: useEffect

可以吧useEffect看作是componentDidMount componentDidUpdate componentWillUnmount 三个函数的组合 在https://ant.design/components/button-cn 打开一个codesanbox&#xff0c; 替换下面代码 import React, { useEffect, useState } from "react"; import ReactD…

python的网页解析器_python 之网页解析器

一、什么是网页解析器 1、网页解析器名词解释 首先让我们来了解下&#xff0c;什么是网页解析器&#xff0c;简单的说就是用来解析html网页的工具&#xff0c;准确的说&#xff1a;它是一个HTML网页信息提取工具&#xff0c;就是从html网页中解析提取出“我们需要的有价值的数据…

JWT:我应该使用哪种签名算法?

JWT&#xff1a;我应该使用哪种签名算法&#xff1f;JSON Web Token (JWT) 可以使用许多不同的算法进行签名&#xff1a;RS256、PS512、ES384、HS1&#xff1b;当被问及他们想使用哪一个时&#xff0c;您就会明白为什么有些开发人员会挠头。根据我的经验&#xff0c;许多主流身…

写一个聊天辅助程序

Codeprocedure TForm1.Button1Click(Sender: TObject);varhParent,hButton,hMemo: HWND;beginMemo1.SelectAll;//Memo内容全选Memo1.CopyToClipboard;//把Memo中选中的语句拷贝到剪贴板中try//找发送消息的QQ窗口hParent : FindWindow(nil, 发送消息);//然后找回话时用的编辑窗…

真是个狠人!开学第一天,这批小学生的造型刷爆朋友圈!

全世界只有3.14 % 的人关注了爆炸吧知识在史上最长的长假过后杭州一二三年级小学生回到学校忘记座位在哪里、老师姓什么各种有趣故事不断……而在养正小学门口&#xff0c;从入校门开始&#xff0c;大家笑声就不断&#xff0c;别样的开学礼一下刷屏了朋友圈&#xff1a;每个小朋…

Linux系统断电后起不来,centos/linux 断电后,开机光标闪现不能开启,重新引导

一台工作站在某次断电以后不能正常重启了。主板的文字结束后&#xff0c;就只剩下光标在闪。开机&#xff0c;观察还能进行bios设置&#xff0c;主板没有问题。用u盘能启动操作系统&#xff0c;可以查看硬盘。所以硬件没有问题。猜想是引导出问题了。阅读了以下文章&#xff1a…

SCM基础之过程描述

软件开发一般分为&#xff1a;计划阶段、开发阶段和维护阶段 计划阶段&#xff1a;总体研发计划 -> 配置管理计划&#xff1a; CCB确定开发计划中的里程碑和开发策略CMO&#xff08;配置管理员&#xff09;根据CCB规划&#xff0c;制定配置管理计划&#xff0c;交由CCB审核C…

开通博客,记录生活

2013年大学毕业后&#xff0c;我会到了家乡&#xff0c;在一家大的印刷厂找了一份工作。工作职责就是网管兼软件开发&#xff0c;拿2千多块的工资。后来有一次我打印文件时&#xff0c;发现了一份工资列表。估计是人力资源打错打印机了。我大概一看&#xff0c;原来最高层总经理…

C++中如何读取一个数的位数_C语言编写程序求水仙花数

C语言编写程序求水仙花数水仙花数是一个数学问题&#xff0c;其实质是一个三位数&#xff0c;个位数的立方加十位数的立方加百位数的立方之和等于这个三位数本身。例如153&#xff1d;1*1*15*5*53*3*3&#xff0c;即153&#xff1d;112527。这是一个相对较为简单的C程序&#x…

RabbitMQ简介和六种工作模式详解

一、RabbitMQ简介是一个开源的消息代理和队列服务器&#xff0c;用来通过普通协议在完全不同的应用之间共享数据&#xff0c;RabbitMQ是使用Erlang(高并发语言)语言来编写的&#xff0c;并且RabbitMQ是基于AMQP协议的。1.1 AMQP协议Advanced Message Queuing Protocol(高级消息…

为什么男性比女性死得更早,心疼一秒钟!

最近娱乐圈的那些大瓜大家都吃了吗&#xff1f;某明星的运动&#xff1f;黑眼圈&#xff1f;&#xff1f;不免让小编想起之前看的文章 男性为啥比女性“去”的早嗯&#xff0c;有可能是操劳过度 生活太累 咳咳咳咳咳以上均是不负责任猜想吃瓜要谨慎呦????不过这篇报道…

奥巴马访华:不建议过度审查 提倡加强互联网开放

新华网上海11月16日电 美国总统奥巴马16日在上海与中国青年对话。在回答互联网开放的问题时&#xff0c;奥巴马表示信息越是能够自由的流通&#xff0c;社会就变得越强&#xff0c;因为这样子&#xff0c;世界各地的公民能让自己的政府负责。 [奥巴马]好吧&#xff0c;我现在请…

linux脚本开机挂载,案例七:shell实现开机自动挂载本地YUM仓库程序

实现开机自动挂载本地YUM仓库自动化程序&#xff0c;可以在没有网络的情况下也可以使用yum安装程序。#!/bin/bash#自动搭建yum本地仓库#cdrom () {mount /dev/cdrom /media/cdrom &> /dev/null[ $? -eq 0 ] && echo "挂载成功"}[ -d /media/cdrom ] …