HAP框架-Redis入门手册-精品文档资料整理.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《HAP框架-Redis入门手册-精品文档资料整理.docx》由会员分享,可在线阅读,更多相关《HAP框架-Redis入门手册-精品文档资料整理.docx(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、,Redis入门手册Author:DongHongAn&WuShengCreation Date:2016-07-12Last Updated:2016-07-24Document Ref:Redis数据库Version:1.0Note: Title, Subject, Last Updated Date, Reference Number, andVersion are marked by a Word Bookmark so that they can be easily reproduced in the header and footer of documents. When you
2、change any of these values, be careful not to accidentally delete the bookmark. You can make bookmarks visible by selecting Tools-OptionsView and checking the Bookmarks option in the Show region.1. To add additional approval lines, press Tab from the last cell in the table above.2.文档控制更改记录22日期作者版本更改
3、参考2016-07-12DongHongAn&WuSheng1.0无前版本2016-07-14Xainzhi.chenhand-1.1目录内容文档控制21.文档说明41.1.Redis简介41.2.Redis特点41.3.Redis优势41.4.Redis缺点62.Redis部分命令的使用72.1Key命令72.2INFO命令113.Redis客户端133.1.命令行客户端133.2.可视化客户端133.3.redis连接java客户端164.Redis持久化184.1.持久化方式184.2.AOF持久化方式184.3.RDB持久化方式205.未结与已结问22未结问题22已结问题221. 文档
4、说明本文档主要介绍Redis数据库,Redis数据库命令行、可视化和Java客户端的一些操作,其次介绍部分常用Redis命令。1.1. Redis简介Redis本质上是一种键值数据库,但它在保持键值数据库简单快捷特点的同时,又吸收了部分关系数据库的优点。从而使它的位置处于关系数据库和键值数据库之间。Redis不仅能保存String类型的数据,还能保存Lists类型(有序)和Sets(无序)的数据,而且还能完成排序(SORT) 等高级功能,在实现INCR,SETNX等功能的时候,保证了其操作的原子性。与Memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新
5、的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从) 同步,数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。1.2. Redis特点1. Redis数据库完全在内存中运行,使用磁盘仅用于持久性。 2. 相比许多键值数据存储Redis拥有一套较为丰富的数据类型。 3. Redis支持数据的备份,即master-slave模式(主从)的数据备份。1.3. Redis优势异常快速Redis速度非常快,每秒能执行约11万集合,约81000条每秒。丰富的数据类型Redis原生支持像列
6、表,集合,分类,散列等数据类型。这使得它非常容易解决各种各样的问题,因为我们知道哪些数据类型问题是可以通过它的处理得更好。下面是对几种数据类型的举例:1.String - 字符串Redis的字符串是字节序列。在Redis中字符串是二进制安全的,这意味着他们有一个已知的长度,是没有任何特殊字符终止决定的,所以可以存储任何东西,最大长度可达512M。在上面的例子使用Redis命令set和get,Redis的名称是dha的键存在Redis的字符串值。注:字符串值可以存储最大512兆字节的长度。2Hashes - 哈希值Redis的哈希键值对的集合。 Redis的哈希值是字符串字段和字符串值之间的映射
7、,所以它们被用来表示对象 在上面的例子中的哈希数据类型,用于存储包含用户的基本信息用户的对象。这里HMSET,HEXTALL对于Redis 命令 user:1 是键。每个哈希可存储多达232 - 1个 字段 - 值对(超过4十亿)。3.Lists - 列表Redis的列表是简单的字符串列表,排序插入顺序。可以添加元素到Redis列表的头部或尾部。列表的最大长度为232- 1元素(4294967295,每个列表中的元素超过4十亿)。4.Sets - 集合Redis集合是字符串的无序集合。在Redis中可以添加,删除和测试文件是否存在在O(1)的时间复杂度的成员。注意:在上面的例子中mysql设置
8、属性加两次,但由于唯一性只加一次。成员中集最大数量为232 - 1(4294967295,集合成员超过4十亿)。操作原子性所有Redis的操作是原子的,这保证了如果两个客户端同时访问的Redis服务器将获得更新后的值。MultiUtilty工具Redis是一个多实用的工具,可以在一些像缓存,消息,队列用例中使用,满足实时的高并发需求。应用场景:Web应用程序的会话,网络页面点击数短期数据。 排行榜应用,取TOP N操作。 需要精准设定过期时间的应用。 计数器应用。 Uniq操作,获取某段时间所有数据排重值。 实时系统,反垃圾系统。 Pub/Sub构建实时消息系统。 构建队列系统。 缓存。1.4
9、. Redis缺点数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。2. Redis部分命令的使用Redis命令有一个共同点,即所有的操作都是针对与Key关联的Value的。下面主要讲述与Key相关的Redis命令。学习这些命令对于学习Redis是非常重要的基础,也是能够充分挖掘Redis潜力的利器。Reids命令参考:2.1 Key命令1.相关命令列表:2.命令示例: 1. KEYS/RENAME/DEL/EXISTS/MOVE/RENAMENX: #在Shell命令行下启动Redis客户端工具。 / redis-c
10、li #清空当前选择的数据库,以便于对后面示例的理解。 redis 127.0.0.1:6379 flushdb OK #添加String类型的模拟数据。 redis 127.0.0.1:6379 set mykey 2 OK redis 127.0.0.1:6379 set mykey2 hello OK #添加Set类型的模拟数据。 redis 127.0.0.1:6379 sadd mysetkey 1 2 3 (integer) 3 #添加Hash类型的模拟数据。 redis 127.0.0.1:6379 hset mmtest username stephen (integer) 1
11、 #根据参数中的模式,获取当前数据库中符合该模式的所有key,从输出可以看出,该命令在执行时并不区分与Key关联的Value类型。 redis 127.0.0.1:6379 keys my* 1) mysetkey 2) mykey 3) mykey2 #删除了两个Keys。 redis 127.0.0.1:6379 del mykey mykey2 (integer) 2 #查看一下刚刚删除的Key是否还存在,从返回结果看,mykey确实已经删除了。 redis 127.0.0.1:6379 exists mykey (integer) 0 #查看一下没有删除的Key,以和上面的命令结果进行
12、比较。 redis 127.0.0.1:6379 exists mysetkey (integer) 1 #将当前数据库中的mysetkey键移入到ID为1的数据库中,从结果可以看出已经移动成功。 redis 127.0.0.1:6379 move mysetkey 1 (integer) 1 #打开ID为1的数据库。 redis 127.0.0.1:6379 select 1 OK #查看一下刚刚移动过来的Key是否存在,从返回结果看已经存在了。 redis 127.0.0.1:63791 exists mysetkey (integer) 1 #在重新打开ID为0的缺省数据库。 redis
13、 127.0.0.1:63791 select 0 OK #查看一下刚刚移走的Key是否已经不存在,从返回结果看已经移走。 redis 127.0.0.1:6379 exists mysetkey (integer) 0 #准备新的测试数据。 redis 127.0.0.1:6379 set mykey hello OK #将mykey改名为mykey1 redis 127.0.0.1:6379 rename mykey mykey1 OK #由于mykey已经被重新命名,再次获取将返回nil。 redis 127.0.0.1:6379 get mykey (nil) #通过新的键名获取。 r
14、edis 127.0.0.1:6379 get mykey1 hello #由于mykey已经不存在了,所以返回错误信息。 redis 127.0.0.1:6379 rename mykey mykey1 (error) ERR no such key #为renamenx准备测试key redis 127.0.0.1:6379 set oldkey hello OK redis 127.0.0.1:6379 set newkey world OK #由于newkey已经存在,因此该命令未能成功执行。 redis 127.0.0.1:6379 renamenx oldkey newkey (i
15、nteger) 0 #查看newkey的值,发现它也没有被renamenx覆盖。 redis 127.0.0.1:6379 get newkey world 2. PERSIST/EXPIRE/EXPIREAT/TTL: #为后面的示例准备的测试数据。 redis 127.0.0.1:6379 set mykey hello OK #将该键的超时设置为100秒。 redis 127.0.0.1:6379 expire mykey 100 (integer) 1 #通过ttl命令查看一下还剩下多少秒。 redis 127.0.0.1:6379 ttl mykey (integer) 97 #立刻
16、执行persist命令,该存在超时的键变成持久化的键,即将该Key的超时去掉。 redis 127.0.0.1:6379 persist mykey (integer) 1 #ttl的返回值告诉我们,该键已经没有超时了。 redis 127.0.0.1:6379 ttl mykey (integer) -1 #为后面的expire命令准备数据。 redis 127.0.0.1:6379 del mykey (integer) 1 redis 127.0.0.1:6379 set mykey hello OK #设置该键的超时被100秒。 redis 127.0.0.1:6379 expire
17、mykey 100 (integer) 1 #用ttl命令看一下当前还剩下多少秒,从结果中可以看出还剩下96秒。 redis 127.0.0.1:6379 ttl mykey (integer) 96 #重新更新该键的超时时间为20秒,从返回值可以看出该命令执行成功。 redis 127.0.0.1:6379 expire mykey 20 (integer) 1 #再用ttl确认一下,从结果中可以看出果然被更新了。 redis 127.0.0.1:6379 ttl mykey (integer) 17 #立刻更新该键的值,以使其超时无效。 redis 127.0.0.1:6379 set m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- HAP 框架 Redis 入门 手册 精品 文档 资料 整理
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内