NCache is an extremely fast and scalable In-Memory Distributed Cache for .NET / .NET Core. It lets you remove bottlenecks related to database and data storage and linearly scale your applications.
You can download a Windows Installer (.msi) or a .tar.gz NCache and install it on either Windows or Linux platforms. Or you can simplify your installation by deploying NCache in a Docker container. In fact, NCache supports extra platforms like “Windows Nano Server” through Docker that are not available thru Windows Installer (.msi).
The easiest and quickest way to start using NCache is to fetch a pre-built NCache Docker Image from Docker Hub. These Docker images come preinstalled with NCache. Simply use “docker pull” command to install them in your environment.
Windows Server Core is a much lighter image of Windows Server and therefore more appropriate platform for Docker Images.
docker pull alachisoft/ncache:latest
docker pull alachisoft/ncache:professional-server-4.9.1
docker pull alachisoft/ncache:opensource-server-4.9.1
Only available through Docker.
Windows Nano Server is only supported as a Docker Image from Docker Hub. The reason is because standard Windows Installer (.msi) does not work on Nano Server. You can use a very lightweight NCache caching tier on this platform. But, keep in mind that Windows Nano Server is going through further changes where new features are being added to it.
docker pull alachisoft/ncache:enterprise-server-nano-4.9.1
NCache Enterprise is available as a Docker Image on Linux Debian. For other flavors of Linux, please use the Docker File provided by Alachisoft and modify it for your preferred flavor or Linux.
docker pull alachisoft/ncache:enterprise-server-linux-4.9.1
In most situations, you are fine just using the standard Docker Image of NCache from Docker Hub. But, in some cases, you may want to create a custom Docker Image that includes your own software or other variations of even standard OS software.
One example of this is the flavor of Linux. NCache Docker Image on Docker Hub uses Debian Linux but you may want another flavor of Linux for your NCache servers; NCache works fine on multiple flavors of Linux. Or, you may want to create a custom Docker Image for your application server (NCache Client) that contains not only your own application but also NCache client software.
In all such cases, Alachisoft provides you various Dockerfiles which you can edit and customize to fit your needs.
Here are a few examples of these Dockerfiles that you can edit to create a custom Docker Image.
Here is how a typical Dockerfile “NCache Enterprise Server for Windows Server Core” looks like.
# Setting base image for NCache. FROM microsoft/dotnet-framework:4.7.2-runtime # Setting work directory to copy setups and resources for configuring NCache. WORKDIR /app # Make sure that the 2 folders ("resources" and "setup") exist in the same directory as the Dockerfile. # Make sure that "IPBinding.ps1" script resides in the "resources" folder. # Make sure that Microsoft Visual C++ 2010 x64 Redistributable setup is placed in the "setup" folder. It can be downloaded from https://www.microsoft.com/en-us/download/details.aspx?id=14632. # Make sure that NCache setup resides in the "setup" folder. It can be downloaded from http://www.alachisoft.com/download-ncache.html. # Copying resources and setups into the work directory of the container. COPY resources . COPY setup . # Exposing ports used by NCache for communication. # Exposing the port at which NCache service will listen for incoming client connection requests. EXPOSE 9800 # Exposing the port at which NCache service will listen for incoming management connection requests (NCache Manager, Monitor and Tools). EXPOSE 8250 # Exposing the port at which Bridge service will listen for incoming connection requests from cache processes. EXPOSE 9900 # Exposing the port at which Bridge service will listen for incoming Management connection requests (NCache Manager and Tools). EXPOSE 8260 # Installing Microsoft Visual C++ 2010 x64 Redistributable (Prerequisite of NCache). RUN vcredist_x64.exe /norestart /q # Installing NCache setup. # The parameter "INSTALLMODE" represents the NCache installation mode and has the following values: # Rename this parameter to "EDITION" if you are building image for NCache version 4.8 or older. # Enterprise Server Install mode = "0" # Enterprise Remote Client Install mode = "3" # The parameter "KEY" is the install key and is sent to user through e-mail once they download NCache setup. In case if user does not get a key, contact us at http://www.alachisoft.com/company/contact-us.html. # The parameter "USERFIRSTNAME" represents the first name of the user. # The parameter "USERLASTNAME" represents the last name of the user. # The parameter "COMPANYNAME" represents the company the user works for. # The parameter "EMAILADDRESS" represents the e-mail address of the user. # The parameter "INSTALLDIR" represents the installation directory where NCache will be installed. # the parameter "/qn" specifies that NCache will be installed silently without user interaction and will not prompt the user for anything. RUN msiexec /i ncache.ent.x64.msi INSTALLMODE="0" KEY="XXXXXXXXXX" USERFIRSTNAME="John" USERLASTNAME="Smith" COMPANYNAME="Alachisoft" EMAILADDRESS="email@example.com" INSTALLDIR="C:\Program Files\NCache" /qn # Currently, the IP during NCache installation is stored in the configuration files and it can not be made static at that point. # However, the IP can be made static once the container is started. # An IP Binding change task is scheduled to run when the container instance is started. This task replaces the IP with the actual IP assigned to the container. # Creating one time executing IP Binding task that will change the IP in NCache Configuration files on the first time the container is started. RUN schtasks /Create /TN IPBinding /SC ONSTART /TR "c:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe C:\app\IPBinding.ps1" /ru SYSTEM # Entry point for the container, once all the required configurations have been made. CMD start -Verbose