您的位置:首页 > 数据库 > Redis

Redis简介及其使用方法

2016-07-25 17:53 603 查看


一、 Redis简介

Redis是一个开源的Key-Value存储,但又不仅仅是Key-Value存储,用官网上的话来说,Redis是一个数据结构存储,可用作数据库、缓存和消息中间件。相对于传统的Key-Value存储Memcached来说,Redis具有如下特点:
速度快
丰富的数据结构,除String之外,还有List, Hash, Set, Sorted Set
单线程,避免了线程切换和锁的性能消耗
原子操作
可持久化(RDB与AOF)
发布/订阅
支持Lua脚本
分布式锁
事务
主从复制与高可用(Redis Sentinel)
集群(3.0版本以上)


二、 Redis数据结构


1、String

这是最简单的Redis类型。如果只使用这种类型,Redis就像一个可持久化的Memcached服务器。


2、List

Redis的List是基于双向链表实现的,即可以支持反向查找和遍历。

常用案例:聊天系统、社交网络中获取用户最新发表的帖子、简单的消息队列、新闻的分页列表、博客的评论系统。


3、Hash

Hash是一个String类型的field和value之间的映射表,如图1,类似于.NET中的Hashtable和Dictionary。主要用来存储对象,可以避免序列化的开销和并发修改控制的问题。




4、Set

Set也是一个列表,不过它的特殊之处在于它是可以自动排重的:当需要存储一个列表数据,而又不希望出现重复的时候,Set是一个很好的选择(比如ID的集合)。并且Set提供了判断某个成员是否在一个Set集合内的接口,这也是List所没有的。


5、Sorted Set

Sorted Set和Set的使用场景类似,区别是Sorted Set会根据提供的score参数来进行自动排序。当你需要一个有序的并且不重复的集合列表,那么就可以选择Sorted Set数据结构。常用案例:游戏中的排行榜。


三、 Redis的其他重要特性


以下特性请重点看管道和事务。


1、管道

Redis管道是指客户端可以将多个命令一次性发送到服务器,然后由服务器一次性返回所有结果。管道技术在批量执行命令的时候可以大大减少网络传输的开销,提高性能。


2、事务

Redis事务是一组命令的集合。一个事务中的命令要么都执行,要么都不执行。如果命令在运行期间出现错误,不会自动回滚。

管道与事务的区别:管道主要是网络上的优化,客户端缓冲一组命令,一次性发送到服务器端执行,但是并不能保证命令是在同一个事务里面执行;而事务是原子性的,可以确保命令执行的时候不会有来自其他客户端的命令插入到命令序列中。


3、分布式锁

分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作,如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。


4、发布/订阅

发布订阅是一种消息通信模式。Redis作为一个发布订阅服务器,在发布者和订阅者之间起到了消息路由的功能。订阅者可以向Redis服务器订阅自己感兴趣的消息类型,Redis将消息类型称为通道(channel)。当发布者向Redis服务器发送特定类型的消息时,订阅该消息类型的所有client都会收到此消息。


5、地理信息

在Redis 3.2版本中新增了地理信息相关的命令,可以将用户给定的地理位置信息(经纬度)存储起来,并对这些信息进行操作。


四、 DEMO下载

在需要使用Redis的项目中引用ERedis.dll和EFxCommon.dll。


五、 Redis Key命名规范

Redis Key命名规范:AppId:keyName


六、 参考资料

Redis官网
ServiceStack.Redis客户端
Redis命令大全

站在巨人的肩膀上,转自我朋友的文章。
网络转载请注明~




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: