您的位置:必发88 > 美食频道 > 所以需要gcc环境,Redis是典型的NoSQL数据库服务器

所以需要gcc环境,Redis是典型的NoSQL数据库服务器

2019-12-22 00:46

安装与运用

  • Redis-x64-3.2.100:服务端 客户端
  • redis-3.2.5:源代码
  • Redis Desktop Manager - v0.8.8:客户端(基于Qt5的跨平台Redis桌面管理软件,C 编写,响应火速、质量好,但不扶助数据库备份与回复)

实际使用:

  • 服务端运转:将下令 redis-server.exe redis.windows.conf 写入 .bat 文件,直接运维 StartWithConf.bat 运行服务端;
  • 顾客端运行:直接运营 redis-cli.exe 就可以;

    redis.windows.conf:配置文件 redis-benchmark.exe:Redis读写品质测量检验工具 redis-check-aof.exe:aof修复检查日志 redis-check-dump.exe:dump检查数据库文件 redis-cli.exe:Redis客商端程序 redis-server.exe:Redis服务器程序 StartWithConf.bat:运行Redis

redis介绍:

安排文件

redis.windows.conf

Redis服务端的运转参数全体靠配置文件落到实处,此处详细介绍Redis配置文件的多少个注重参数:

network

  • bind 127.0.0.1:绑定地址(外网连接:0.0.0.0)  
  • port 6379:暗许绑定本机的6379端口;
  • timeout:连接超时时间(秒)
  • requirepass pass:配置redis连接认证密码

general

  • loglevel debug/notice/warning/verbose:日志等第(开荒测验/临蓐情形/只记录警报错误消息/详细音信)
  • logfile ./Logs/redis_log.txt:日志文件保留路径
  • databases 16:数据库数量,暗中同意0

snapshotting

  • save TimeInterval ChangeCnt

append only mode

  • appendonly yes:开启命令日志方式;

limits

  • maxclients 64:最浦那接数,0为不限制
  • maxmemory <bytes>:内部存款和储蓄器清理临界角
  • maxmemory-policy volatile-lru:内部存款和储蓄器清理选用的暗中同意计策,对安装过期时间的key实行LRU算法删除
Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库,缓存和消息代理。它支持数据结构,如字符串(String),哈希(Hash),列表(List),集合(Set),具有范围查询的排序集(ZSet)。Redis具有主从复制,缓存清理机制,部分事务和不同级别的磁盘持久化,并通过Redis Sentinel提供高可用性(哨兵模式),并通过Redis Cluster支持集群部署。

服务命令

ping:启动服务连接情况
info:查看server/client配置信息
info commandstats   config resetstat:显示/清除名次调用统计信息
config get/set:获取/设置配信息
flushdb/flushall:删除当前所选/所有数据库中的所有key
save/bgsave:数据保存到硬盘/异步保存
lastsave: 上次成功保存到磁盘的unix时间戳
dbsize:查看所有key的数目 
get/set和mget/mset:获取/设置键
incr/decr和incrby/decrby:自增/自减
exists/type key:键key是否存在/键类型
expire key secondTime:设置键的过期时间
rename oldKey newKey:重命名
ttl key:键key的剩余存活时间
select db_index:选择数据库
move key db_index:将键key移动到指定数据库

安装Redis 4.0.6:

基本概念

Redis是数风流倜傥数二的NoSQL数据库服务器,其License是Apache License、完全免费。首先看下内部存款和储蓄器数据库的基本概念:

内部存款和储蓄器数据库

In-Memory DataBase,以内存为根本存款和储蓄媒介物的多寡库.

  • 全体的表及索引在内部存款和储蓄器中、清除I/O瓶颈,为访谈内存设计最棒访谈方法和目录情势,读写速度快、质量好;
  • 内部存储器数据库的体积大小受物理内部存款和储蓄器的限量;
  • 安全性难题是硬伤,帮助依据政策与磁盘数据库实行数量同步,以致数据库的可信性苏醒机制;

Redis

REmote DIctionary Server(远程字典服务),远程内部存款和储蓄器数据库(Memory Database Data Structure Server),开源的应用ANSI-C语言编写、帮忙互联网、可依赖内部存储器亦可长久化的日志型、高品质的key-value数据库,Redis不约定义且不接纳表,适应高并发、海量数据存款和储蓄场景。

  • A persistent key-value database with built-in net interface written in ANSI-C for Posix systems.
  • Redis is an open source, BSD licensed, advanced key-value cache and store.

上面是Redis扶持的5种类型数据布局的此中图解(图意气风发):

图片 1

redisObject目的是Redis内部的大旨目的,用于表示全数的key和value。

typedef struct redisObject {
    unsigned type:4;  // 数据类型
    unsigned encoding:4;  // 编码方式
    unsigned lru:REDIS_LRU_BITS;   /* lru time (relative to server.lruclock) */
    int refcount;   // 对象的引用计数
    void *ptr;   // 指向真正的存储结构
} robj;

其中,REDIS_LRU_BITS表示当内部存款和储蓄器超过限度时选拔LRU算法消亡内部存款和储蓄器中的靶子。redisObject对象的创导在object.c文件中:

robj *createObject(int type, void *ptr) {
    robj *o = zmalloc(sizeof(*o));
    o->type = type;
    o->encoding = OBJ_ENCODING_RAW;
    o->ptr = ptr;
    o->refcount = 1;

    /* Set the LRU to the current lruclock (minutes resolution). */
    o->lru = LRU_CLOCK();
    return o;
}    

Redis的键类型为string,值类型帮助:

  •  字符串:string
  •  列表:list
  •  集合:set
  •  有序集合:zset (SortedSet)
  •  散列:hash

实际内部存款和储蓄器布局暗意图(图二):

图片 2

参考:Redis数据库入门教程; Redis学习笔记;

特点

  • 任何数量In-Momory,作为Memcached的代替者;
  • key-value存款和储蓄系统(Key:数据检索的唯风流倜傥标志、Value:数据存款和储蓄的入眼目的),帮衬多样类型的value(数据构造服务器);
  • redis的起源是cache,缓存,高速缓存;
  • 数码存款和储蓄于内部存储器中或被布置为使用设想内部存储器;
  • 长久化性情(Persistence):能够持久化到磁盘(周期性把校正数据写入磁盘或把修正操作追加写入记录文件);
  • 主从复制脾气(Master/Slave Replication):负载均衡,扩充读品质;
  • 客商端分片(Client-Side Sharding):数据划分为三个部分,扩张写品质,线性级其余性子提高;
  • 支撑各类不一样方式的排序;
  • 支持轻松的业务(仅完结壹遍性推行多条命令的机能,不支持回滚);
  • 辅助设置数据过期时间;

内部存款和储蓄器优化

  • string和数字:Redis内部维护三个数字池,能够节省存款和储蓄空间,暗中认可 REDIS_SHARED_INTEGERS = 10000 
  • 复杂类型的储存优化:Redis内部选取紧密格式存款和储蓄数据(切合集合饱含的Entry非常的少并且每一个Entry包蕴的Value不是非常长的意况),遍历复杂度下跌为O(n卡塔尔(قطر‎、但节省存款和储蓄空间。以ZIPMap的数据布局为例:

  图片 3

  个中,字段free用于冗余空间,空间换时间、一定情状下制止插入操作引起的扩大体积操作。

  • list、set、hash接纳独特编码,优化存款和储蓄空间;
  • byte、bit品级的操作:getrange/setrange、getbit/setbit以至bitmap高效存款和储蓄;

Redis .vs. Memcached

  • 双方均是高质量键值缓存服务器,Memcached只提供数据缓存服务,Redis提供数据缓存和长久化;
  • Memcached:三十二线程服务器;Redis:单线程服务器,部分质量通过多线程达成;
  • Memcached只帮助通常字符串键;Redis提供足够的多少存储构造,同期补助主数据库(Primary Database) 协理数据库(Auxiliary Database)使用;
  • Memcached:预分配内部存储器池情势,Redis:现场申请内部存款和储蓄器的主意存款和储蓄数据、且能够安排虚构内部存款和储蓄器

Redis 4.0.6

数据类型

string

图片 4

list

双向链表、允许再一次,支持lpush/rpush和lpop/rpop;完结信息队列等;

图片 5

set

不容许再度,内部是哈希表完成、查找/删除/插入均O(1卡塔尔; 会集提供SINTE帕杰罗、SUNION、SDIFF分别扶持交集、并集、差集操作。

图片 6

hash

键值对(父键 子键:值)。存款和储蓄键key的多少个属性数据,完全能够用Json格式存款和储蓄、直接当做string类型操作,但对质量有震慑,所以Redis提议Hash类型。

图片 7 

如下,图一是常常的key/value布局,须求封装二个对象保存value的新闻;图二是Redis的Hash类型:

图片 8

zset

有序键值对(父键 成员:分值),键值对实际是成员和分值(Member-Score)的照射关系(字符串成员member与浮点数分值score之间的静止映射,按分值大小排序),分值必需为浮点数; 不仅可以够依照成员访谈成分(同散列),又能够依照分值按序访谈成分构造。

图片 9

系统情状:

持久化

内部存款和储蓄器提供主存款和储蓄支持、硬盘作长久性存款和储蓄。暗中认可开启PRADODB格局,暗中认可优先加载AOF文件。壹遍性将数据加载到内部存款和储蓄器中,三回性预热。

问题:当服务器被关闭时,服务器内部存款和储蓄器存款和储蓄的数额将往何地去跟何人?

RDB .vs. AOF

  • 翼虎DB格局二进制格局存款和储蓄数据,文件很小且格式紧密(劲客DB文件的积累格式和Redis数据在内部存款和储蓄器中的编码格式黄金年代致)、加载速度快;AOF格局文本文件扩大写操作命令,文件相当大、音信冗余,加载速度慢,但rewrite命令会压缩aof文件;
  • 凯雷德DB方式按安顿的save战术完成定期批量数码存款和储蓄、功效相对较高;AOF形式准实时日志记录、效能相对非常的低;
  • 比较Porsche911DB情势,AOF格局可信赖性较高、起码的数额错过和较高的数据恢复生机手艺;

不重启Redis从ENCOREDB情势切换来AOF格局

redis-cli> config set appendonly yes:启用AOF
redis-cli> config set save "":关闭RDB

参考:Redis数据持久化; Redis小编:深度分析Redis持久化;

[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.32-220.el6.i686 #1 SMP Tue Dec 6 16:15:40 GMT 2011 i686 i686 i386 GNU/Linux

RDB

半漫长化形式(快速照相格局:File-Snap-Shotting,即时间点转储:Point-in-Time Dump),Redis DataBase,将数据先存储在内部存款和储蓄器,当直接调用save/bgsave命令时或数量更改满意设置的save条件时触发bgsave操作,将内部存储器数据二次性写入牧马人DB文件。比较切合苦难苏醒(Disaster Recovery),若Redis卓殊crash,近期的数目会甩掉。

rdbcompression yes:创建快照时对数据进行压缩  
dbfilename dump.rdb:快照名称
dir ./saveFile/:快照保存路径(AOF文件存放目录)

原理Copy-on-Write(写时复制)才干

  • Redis forks;
  • 子进度将数据写到不常RAV4DB文件中;
  • 当子进程完结写奥迪Q7DB文件,用新文件替换旧文件;

该原理保险其余时候复制ENCOREDB文件都以纯属安全的。

介怀:因为Redis是C语言编写,所以必要gcc境遇。

AOF

全长久化情势(日志情势),Append-Only-File,将数据存在内部存款和储蓄器,相同的时间调用fsync将本次写操作命令进行日志记录到aof文件,基于Redis互连网交互作用公约的由Redis标准命令组成的可识其他纯文本文件,只同意增添不许改写。

写策略:默许并推举 appendfsync everysec ,速度和商洛统筹。

  • appendfsync always:每提交贰个改善命令调用fsync刷新到AOF文件,非常的慢、但那八个安全;
  • appendfsync everysec:每秒调用fsync刷新到AOF文件,极快、但恐怕会废弃豆蔻梢头秒之内的数目;
  • appendfsync no:依赖OS被动刷新、redis不积极刷新AOF,最快、但安全性差;

AOF最要害的配备就是有关调用fsync追加日志文件漫长化数据的频率。磁盘空间满、断电等状态不会影响日志的完整性和可用性。

保存:支持2种方式

  • 调用flushaofbuf,把aof_buf中的命令写入aof文件,再清空aof_buf,步向下贰次loop;

    sds aof_buf; / AOF buffer, written before entering the event loop /

  • aof_rewrite:依据现存的数据库数据反向生成命令,然后把命令写入aof文件中;

加载

fakeClient = createFakeClient();   // 创建伪客户端
while(命令不为空) {
   // 获取一条命令的参数信息 argc, argv
      . . . 
   // 执行
   fakeClient->argc = argc;
   fakeClient->argv = argv;
   cmd->proc(fakeClient);
}

AOF重写

bgrewriteAOF,重新生成风流浪漫份AOF文件,新的AOF文件只含有对相近个值的往往操作的最终一条记下(能够还原数据的蝇头指令集),进程和EscortDB相像(Copy-on-Write机制):

  • fork多个子进度,直接遍历旧的AOF文件,将数据写入新的AOF有的时候文件;
  • 在写新文件进程中,全数的新的写操作日志记录在内部存款和储蓄器缓冲区中、同不经常间会写入到原有的AOF文件中;
  • 姣好写新文件操作后,发出时限信号通告父进度将内部存储器缓冲区中的写指令贰遍性追加到临时AOF文件中;
  • 追加完结,Redis将权且AOF文件作为新AOF文件取代旧AOF文件(调用原子性的rename命令用新的AOF文件代替老的AOF文件); 

当同时知足以下2个规范时触发rewrite操作:

auto-aof-rewrite-percentage 100  // 当前写入日志文件的大小占到初始日志文件大小的某个百分比时触发rewrite
auto-aof-rewrite-min-size 64mb   // 本次Rewrite最小的写入数据量

注意,bgrewriteaof和bgsave无法同临时候实行,幸免多个Redis后台进程同期对磁盘进行大气的I/O操作。

修复

Redis提供 redis-check-aof.exe 工具支持日志修复效果:

  • 备份坏的AOF文件;
  • 运营redis-check-aof –fix修复坏的AOF文件;
  • 用diff -u比较五个文本的异样,确认难题点;
  • 重启Redis,加载修复后的AOF文件;

[root@localhost ~]# gcc -v
使用内建 specs。
目标:i686-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c ,objc,obj-c ,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linux
线程模型:posix
gcc 版本 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)

基本机制

master-slave,为了增加悠久化学工业机械制,在持久化底子上Redis提供复制功用:将三个主服务器(master)数据自动同步到多少个从服务器(slave),完结中央同步:

  • 纯粹的冗余备份
  • 晋级读质量

具体地:

  • 初始从服务器,先向主服务器发送SYNC命令;
  • 主服务器收到SYNC命令后fork子进度最早保存快照,时期有所发给主服务器的命令都会被缓存到内部存款和储蓄器;
  • 快照保存达成后,主服务器把快速照相和缓存的一声令下全体发送给从服务器;

  • 从服务器保存收到的快速照相文件并加载到内部存款和储蓄器中,然后挨门挨户推行收到的缓存命令;

在主导同步进度中(异步完成),从服务器不会卡住,期间暗中同意使用同步此前的数额持续响应客商端命令。主从机制帮助增量同步计策,减少连接断开的重整旗鼓资本。

具体运用中何奇之有是:Redis MySQL

图片 10

安装:

发表订阅机制

publish-subscribe,阅览者格局,订阅者(Subscriber)订阅频道(Channel),公布者(Publisher)将消息发到内定频道(Channel),通过这种办法将音讯的发送者和选拔者解耦,能够兑现八个浏览器之间的信息同步和实时更新。

图片 11

  • 新闻的传递是多对多的;
  • 协理方式匹配;
  • 运维牢固、快捷;

    publish myChannel “xxx”:公布 subscribe myChannel:订阅 unsubscribe myChannel:打消订阅

Redis的Pub/Sub格局允许动态的Subscribe/Unsubscribe,提高系统的灵活性和可扩充性。  

图片 12

其他

排序

问题:数据库辅助排序,为何要把排序效率放在缓存中完毕?

  • 排序会扩大数据库的负载,难以支撑高并发的利用;
  • 在缓存中排序不会遇上表锁定的标题;

    sort key [BY pattern] [LIMIT offset cnt] [GET pattern [GET pattern ...]] [asc | desc] [ALPHA] [STORE destination]

  • by:即order by,钦赐排序字段,by *->子键名;

  • limit:节制排序后归来成分的数目,表示跳过前offset个元素、再次回到之后的一连cnt个因素,能够兑现分页功效;
  • get:重临钦命的字段值,get *->子键名;
  • store:将排序结果存入内定地方;  

事务

Transaction。

  • multi:原子操作,布告Redis,接下去的几何命令归属同大器晚成业务;
  • 输入若干限令,存款和储蓄在指令队列中而不会被任何时候施行;
  • exec:原子操作,公告Redis,属于同黄金时代业务的具有命令输入实现,最先实行专门的工作;

管道

pipilining,允许Redis二回性选择多少个指令、实践后贰回性再次来到结果,降低顾客端与Redis服务器的通讯次数、减少往返时延。相像事情,通过原子操作multi/exec完结。

预先级队列

blpop/brpop。

解压缩:

运用项景

第生机勃勃,将Redis与SQL Server/MySQL等相比较一下:

  • Redis的漫长化是外加成效,且其flushdb、flushall命令会间接清空数据库, SQL Server/MySQL的持久化是着力职能;
  • Redis全量悠久数据从内部存款和储蓄器到磁盘、大数据下影响属性,SQL Server/MySQL增量持久化被改造的数额;

选拔场景

 - 在主页中显示最新的项目列表;
 - 删除和过滤:lrem;
 - 排行榜(Leader Board)及相关问题;
 - 按照用户投票和时间排序;
 - 过期项目处理:unix时间作为得分;
 - 计数(Counting Stuff):INCR,DECR命令构建计数器系统;
 - 特定时间内的特定项目:Redis特色特性;
 - 实时分析正在发生的情况,用于数据统计与防止垃圾邮件等;
 - Pub/Sub:发布订阅机制;
 - 队列(Priority Queue);
 - 缓存(Caching);  

下一场交给使用Redis中的几点注意事项:

  • keys * --->  scan
  • 提议接纳hash
  • expire设置key的现成时间 volatile-lru计策;
  • Redis所在机装备理内部存款和储蓄器使用最佳不要超过实际内存总的数量的3/5;

甚至由此阅读 ALCA in Redis-land 得到的提出:

图片 13

参考:Redis应用处景; Redis小编谈Redis应用途景; Redis应用提出;

[root@localhost modules]# tar -zxvf redis-4.0.6.tar.gz -C ../softwares

Redis for C#

初识Redis时接触到的.Net-Redis组件是ServiceStack.Redis,其V3连串的新型版本是:ServiceStack.Redis.3.9.29.0。

ServiceStack.Redis

ServiceStack.Common.dll
ServiceStack.Interfaces.dll
ServiceStack.Redis.dll
ServiceStack.Text.dll

问询RedisClient类的切实音信:

  • 基本操作

    public void Init(); public bool ContainsKey(string key); public bool Remove(string key); public void RemoveByPattern(string pattern); public void RemoveByRegex(string pattern); public IEnumerable GetKeysByPattern(string pattern); public List SearchKeys(string pattern); public List GetAllKeys(卡塔尔国; // 数据库内的全数键(慎用) public string GetRandomKey(卡塔尔; public T Get(string key); public IRedisTypedClient As(); // / 重要 / public bool Add(string key, T value [, DateTime expiresAt]); // [设置过期时间] public bool Add(string key, T value [, TimeSpan expiresIn]); public bool Set(string key, T value [, DateTime expiresAt]); // [设置过期时间] public bool Set(string key, T value [, TimeSpan expiresIn]卡塔尔(قطر‎; public bool ExpireEntryAt(string key, DateTime expireAt卡塔尔(英语:State of Qatar); // 设置过期时间 public bool ExpireEntryIn(string key, TimeSpan expireIn卡塔尔(英语:State of Qatar); public TimeSpan GetTimeToLive(string key卡塔尔; // TTL时间 public long DecrementValue(string key卡塔尔(قطر‎; // 减 public long DecrementValueBy(string key, int count卡塔尔; public long IncrementValue(string key卡塔尔(قطر‎; // 增 public long IncrementValueBy(string key, int count卡塔尔国;

  • string

    public long GetStringCount(string key); public string GetValue(string key); public void SetValue(string key, string value [, TimeSpan expireIn]); public void RenameKey(string fromName, string toName); public int AppendToValue(string key, string value); public string GetAndSetValue(string key, string value); public string GetSubstring(string key, int fromIndex, int toIndex); public List GetValues(List keys); public Dictionary GetValuesMap(List keys);

  • List  

    // 基本操作 public int GetListCount(string listId卡塔尔(قطر‎; public int RemoveItemFromList(string listId, string value卡塔尔国; public string RemoveStart/End/AllFromList(string listId卡塔尔(英语:State of Qatar); public void SetItemInList(string listId, int listIndex, string value卡塔尔国; public void AddItemToList(string listId, string value卡塔尔(قطر‎; public void AddRangeToList(string listId, List values); public List GetAllItemsFromList(string listId); public string GetItemFromList(string listId, int listIndex); public List GetRangeFromList(string listId, int startingFrom, int endingAt); public List GetRangeFromSortedList(string listId, int startingFrom, int endingAt); public List GetSortedItemsFromList(string listId, SortOptions sortOptions); public List GetValues(List keys); public Dictionary GetValuesMap(List keys卡塔尔国; // List作为队列 public void EnqueueItemOnList(string listId, string value卡塔尔(英语:State of Qatar); public string DequeueItemFromList(string listId卡塔尔国; // List作为栈 public void PushItemToList(string listId, string value卡塔尔国; public string PopItemFromList(string listId卡塔尔国; public string PopAndPushItemBetweenLists(string fromListId, string toListId卡塔尔(قطر‎;

  • Set

    public int GetSetCount(string setId); public bool SetContainsItem(string setId, string item); public void RemoveItemFromSet(string setId, string item); public void AddItemToSet(string setId, string item); public void AddRangeToSet(string setId, List items); public HashSet GetAllItemsFromSet(string setId); public string GetRandomItemFromSet(string setId); public List GetSortedEntryValues(string setId, int startingFrom, int endingAt); public HashSet GetDifferencesFromSet(string fromSetId, params string[] withSetIds); public HashSet GetIntersectFromSets(params string[] setIds); public HashSet GetUnionFromSets(params string[] setIds); public void StoreDifferencesFromSet(string intoSetId, string fromSetId, params string[] withSetIds); public void StoreIntersectFromSets(string intoSetId, params string[] setIds); public void StoreUnionFromSets(string intoSetId, params string[] setIds); public void MoveBetweenSets(string fromSetId, string toSetId, string item); public string PopItemFromSet(string setId); 

  • Hash

    public int GetHashCount(string hashId); public bool HashContainsEntry(string hashId, string key); public bool RemoveEntryFromHash(string hashId, string key); public bool SetEntryInHash(string hashId, string key, string value); public List GetHashKeys(string hashId); public List GetHashValues(string hashId); public Dictionary GetAllEntriesFromHash(string hashId); public string GetValueFromHash(string hashId, string key); public List GetValuesFromHash(string hashId, params string[] keys); public T GetFromHash(object id);

  • SortedSet(zset)

    public int GetSortedSetCount(string setId); public bool SortedSetContainsItem(string setId, string value); public bool RemoveItemFromSortedSet(string setId, string value); public bool AddItemToSortedSet(string setId, string value [, double score]); public bool AddRangeToSortedSet(string setId, List values [, double score]); public List GetRangeFromSortedSet(string setId, int fromRank, int toRank); public IDictionary GetRangeWithScoresFromSortedSet(string setId, int fromRank, int toRank); public List GetAllItemsFromSortedSetDesc; public IDictionary GetAllWithScoresFromSortedSet(string setId);

在那之中,方法 public IRedisTypedClient<T> As<T>(卡塔尔国; 搭配接口 public interface IRedisTypedClient<T> : IEntityStore<T>{} 和 public interface IEntityStore<T>{} 中提供的主意能够做到各类操作。

在V3.0版本的基本功上,其V4.0版本 ServiceStack.Redis-4.0.52 提供了越来越多的方式:

  • Scan方法;
  • 收获设置配置新闻;
  • 支持Lua脚本; 

    public RedisText Custom(params object[] cmdWithArgs卡塔尔(英语:State of Qatar); // 实施命令 public RedisClient CloneClient(卡塔尔国; public string GetClient(卡塔尔; public void SetClient(string name卡塔尔(英语:State of Qatar); public void KillClient(string address卡塔尔国; public void ChangeDb(long db卡塔尔国; public DateTime GetServerTime(卡塔尔(قطر‎; public DateTime ConvertToServerDate(DateTime expiresAt卡塔尔(英语:State of Qatar); public List> GetClientsInfo(); public string GetConfig(string configItem); public void SetConfig(string configItem, string value); public void SaveConfig(); public void ResetInfoStats();

其中,Custom(卡塔尔方法可以进行绝大多数的Redis命令,ServiceStack.Redis.Commands概念命令,用于Custom(卡塔尔国方法的首先个参数:

public static class Commands{   
        public static readonly byte[] CommandName;
}   

参考

  • .NET中使用Redis - 一个Blog的Demo;
  • ServiceStack.Redis起初履行 - 轻巧Blog完结; 

StackExchange.Redis

鉴于瑟维斯Stack.Redis的V4.0版本商业化起先收取费用,推荐应用:StackExchange.Redis。

StackExchange.Redis是专为.Net/C#的Redis顾客端API,如今被StackOverFlow使用、微软官方RedisSessionStateProvider也运用StackExchange.Redis完结。

StackExchange.Redis的中坚是ConnectionMultiplexer类(线程安全),在命名空间StackExchange.Redis中定义,封装了Redis服务的操作细节,该类的实例被全体应用程序域分享和任用。

ConnectionMultiplexer redisClient = ConnectionMultiplexer.Connect("localhost");
IDatabase db = redisClient .GetDatabase();

其根底和利用待学习...

参考

  • StackExchange.Redis Client开首详细解释;
  • 玩转Redis; Redis到底该怎么运用(1-3);

 


参考

  • Redis粤语官方网站;Redis|生手教程;Redis学习手册;
  • Redis系列(1-4);Redis学习笔记(1-11); Redis文章 - 田琪;
  • Redis源码深入分析;
  • Redis资料汇总专项论题;

图片 14

进去此目录编写翻译redis:

 图片 15

[root@localhost redis-4.0.6]# make && make install

专心:若系统绝非gcc情状会编译战败。安装gcc情形此处不赘述,请点击。

图片 16

编写翻译退步三遍后,安装gcc情况之后,重新编写翻译还有大概会编写翻译战败,是因为上次编译失利后又残存文件。

图片 17

那儿进行:

[root@localhost redis-4.0.6]# make distclean

再也实施编写翻译就不会报错。

 

本文由必发88发布于美食频道,转载请注明出处:所以需要gcc环境,Redis是典型的NoSQL数据库服务器

关键词: DataBase Redis