最近在面试,很多公司都有要求使用过 Redis
,之前没有用过,既然很多公司都要求会,自然是有原因的。本文试着简单学习下 Redis
,并了解下它与 MemoryCache
有什么区别的(之前在 LPS
缓存是用的 MemoryCache
)。
定义
看下官网的说明,
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.
Redis
是一个开源的内存数据结构服务器,可以作为 数据库
,高速缓存
,消息队列代理使用
。支持 字符串
,哈希表
,列表
,集合
等数据结构。然后内置复制,支持事务,以及不同级别的磁盘持久化(Lua
,LRU
没理解是什么,先跳过,有需要再研究)。Redis Sentinel
(哨兵)和Redis Cluster
(集群)一个支持高可用,一个支持自动分区。
嗯,看着介绍功能可以说是很强大了,不过不知道公司具体会用到什么程度,先简单看下吧。
download
linux
的虚拟机也不知道在不在了,好久没用了。先用 windows
的吧。官网没有下载地址,git
是有的。
https://github.com/microsoftarchive/redis/releases
我下了最新的3.2.100
。
install/start
包中自带一个Windows Service Documentation.docx
很贴心。按照文档的说明,install
,start
。
嗯,到这一步已经装好服务,并启动了。然后看下官网的quickStart。
quickStart
按照官网说的做,俺也一样。
.NET
看下官网中 C#
客户端是有多个的,推荐(下图中有五角星的)使用的是有三个 Nhiredis
,ServiceStack.Redis
,StackExchange.Redis
,估计都是足够用的,看下哪个 star
多就用哪个吧。ServiceStack.Redis
(1817),StackExchange.Redis
(3547),StackExchange.Redis
获得了胜利。
新建一个 .NET CORE
控制台项目。
INSTALL-PACKAGE StackExchange.Redis
真棒,有一个io
的文档https://stackexchange.github.io/StackExchange.Redis/Basics
成功。
好了,基本使用就到这儿了,明天还有个面试,要收拾东西睡觉了。按照目前了解的对比下与MemoryCache
的区别也就是 MemoryCache
是基于process
的,而Redis
是单独的服务器。如果是单程序应该都是一样的,多程序使用相同缓存的话,Redis
肯定优于MemoryCache
(不考虑持久化
)。有空或者要用到的时候再深入研究吧。