ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:546.65KB ,
资源ID:7680014      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7680014.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Redis学习教程.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Redis学习教程.docx

1、Redis学习教程Redis学习教程一、redis特点和安装 1、redis官方站点:http:/redis.ioredis是什么:Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglog

2、s and geospatial indexes with radius queries. 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是开源,BSD许可,高级key-value存储系统。可以从来存储字符

3、串,哈希结构,链表,集合。因此常用来提供数据结构服务。2、redis和memcached相比的独特之处 a、redis可以用来存储(store),而memcached是用来做缓存的(cache) 这特点主要是因为具有”持久化”的功能 b、redis存储的数据有”结构”,memcached存储的数据,只有一种类型”字符串” redis可以存储:字符串、链表、哈希结构、集合以及有序集合3、redis在Linux下的安装 a、下载最新版或稳点版本(stable) b、wget 文件地址 /下载 c、tar zxvf 下载的文件名 /解压 d、cd 文件目录 /进入解压的目录 e、make /直接安装

4、不用进行configure编译,这个过程中可能会出现问题,有可能是编译的时间跟现在的系统的时间有大的冲突 f、make test /验证(可选项)如果全部都为OK就没问题 g、make PREFIX=/usr/local/redis install /安装(可以指定安装路径) h、cd /usr/local/redis /进入redis安装目录,里面就一个bin目录 i、cd bin /进入bin目录 redis-benchmark: redis性能测试工具 redis-check-aof: 检查aof日志工具 redis-check-rdb: 检查rdb日志工具 redis-cli: 连接用

5、的客户端 redis-server: redis服务进程 j、需要从源码目录中复制redis配置文件到redis的安装目录下 cp /*/redis源码目录/redis.conf /usr/local/redis k、启动redis服务,需要制定配置文件路径 ./bin/redis-server ./redis.conf 从这里可以看到:port端口为6379,但是现在这个我们不能使用ctrl+c关闭,这样就导致redis服务关闭,如何使其在后台运行能,请看m步骤 l、使用客户端 ./bin/redis-cli 使用:可以使用set和get命令 set site get site m、使red

6、is以后台进程运行,修改其配置文件redis.conf文件,将daemonize no改成daemonize yes修改后保存,开启redis服务./bin/redis-server ./redis.confps aux|grep redis /检验是否开启这样我们再去用get获取site会发现已经丢失,如果让其不丢失,请看后续章节 n、redis默认16个数据库,配置文件databases 16 是从0-15,默认的操作是在0号数据库操作,切换库使用select 编号0|1.|15二、通用KEY操作命令 1、keys parttern 查询当前有哪些key。 *:通配任意字符 ?:通配单个字

7、符 :通配里面某个字符 a、keys * /查询所有的keyb、keys site /精确查找key为site的键是否存在 c、keys si?e /查找si开头e结尾其中任意字符 d、keys sitde /查找site或side 2、randomkey随机查找一个key 3、type key返回key存的值的类型(没有int这种类型) 4、exists key返回key是否存在(存在返回1,不存在返回0,返回整型) 5、del key1 key2 key3 删除多个key(返回删除key的个数int类型) 6、rename key newKey 给key重命名(成功返回OK),如果newK

8、ey存在,那么修改后讲被key的值覆盖了存在的newKey 7、renamenx key newKey修key重命名,如果newKey存在,则返回0 8、move key number移动key到一个数据库,number表示数据库编号0-15,如果移动不存在key或者另一个库已经存在该key返回值为0 9、expire key timeout设置key的有效时间,单位为s 10、ttl key查看key的有效期,不存在key返回-2,不过期或已过期的key返回-1,否则返回秒数 11、pttl key|pexpire key timeout使用毫秒做单位 12、persist key让key永

9、久有效(成功返回1) 13、flushdb清空当前数据库 14、flushall清空所有数据库 15、dbsizedb中key的个数三、字符串类型的操作 1、set key value ex 秒数px 毫秒数 nx/xx 如:set a 1 ex 100 set b 1 px 10000 注意:ex和px不能同时使用 nx:表示key不存在时操作,如果存在返回值为nil xx:表示key存在时执行操作,如果不存在返回nil 2、mset key1 value1 key2 value2 一次插入多个值 如:mset a aa b bb c cc 3、get key获取这个key的值 4、mget

10、 key1 key2 key3一次获取多个值,如果不存在的key返回nil 5、setrange key offset value把字符串的offset偏移字节改成value,如果偏移的超过了字符串值的长度使用x00进行填充 如:127.0.0.1:6379 set str onetwothreeOK127.0.0.1:6379 setrange str 3 hello(integer) 11127.0.0.1:6379 get stronehelloree如果偏移超过了字符串值的长度:127.0.0.1:6379 setrange str 20 yes(integer) 23127.0.0.

11、1:6379 get stronehelloreex00x00x00x00x00x00x00x00x00yes 6、append key value把value追加到key值的后面 7、getrange key start stop获取字符串中start,stop范围的值 start从0开始,stop从-1开始 注意:start=length:返回空字符串 stop=length:返回到字符串的结果 start=stop:返回空字符串 8、getset key newValue获取key的旧值并设置一个新值 9、incr key使key的值自动增加1,返回增加后的值 10、decr key使k

12、ey的值自动减少1,返回减少后的值 11、incrby key num使key的值增加num,返回增加后的值 12、decrby key num使key的值减少num,返回减少后的值 13、incrbyfloat key float使key的值增加float浮点数,返回增加后的值 14、decrbyfloat key float使key的值减少float浮点数,返回减少后的值 15、setbit key offset value设置二进制偏移量offset上的值 如:127.0.0.1:6379 set char AOK127.0.0.1:6379 get charA127.0.0.1:637

13、9 setbit char 2 1(integer) 0127.0.0.1:6379 get chara分析:A的ascii为65,对于的二进制位0100 0001,如果要转成小写a的ascii为97二进制位 0110 0001,也就是将第二位的0变成1。反之如果将小写a变成A,那么就是将第二位的1变成0则可。注意:offset如果过大,则中间填0 offset最大为多少:232-1,最大为512M 16、bitop OR res foo1 foo2 #意思是把foo1和foo2做OR运算,结果存入res中。bitop支持的位操作有ND、OR、XOR、NOT四个。 17、getbit key

14、offset返回在指定Offset上BIT的值,0或1。如果Offset超过string value的长度,该命令将返回0,所以对于空字符串始终返回0。18、bitcount key获取key中位占1的个数四、Link链表结构 链表的结构: 1 1 2 3 4 5 6 7 8 9 头部 (下表还是从0开始) 尾部 1、lpush key value把值插到链表的头部,返回值为链表中元素的个数 2、rpush key value把值插到链表的尾部,返回值为链表中元素的个数 3、lrange key start stop取出链表的某部分的值 如:lrange key 0 -1/取出整个链表的值 4

15、、lpop key弹出链表的最左边的值,返回弹出的值 5、rpop key弹出链表的最右边的值,返回弹出的值 6、lrem key count value从key链表中删除value值 注意:删除count的绝对值个value后结束 count0:从表头删除 count zrangebyscore class 0 201) hai2) zhj3) yang4) li127.0.0.1:6379 zrangebyscore class 0 20 limit 1 21) zhj2) yang4. zrank key value查询value在集合key中的排名位置,从0,n-1,默认升序排列5.

16、zrevrank key value查询value在集合key中的排序位置,从0,n-1,降序排列6. zcard key返回key集合的元素个数7. zrem key value1 value2 删除集合中的元素,返回删除元素的个数8. zremrangebyscore key min max按照score来删除元素,删除score在min,max之间的元素,返回删除元素的个数9. zremrangebyrank key start end按照排名删除元素,删除名次在start,end之间的元素,返回删除元素的个数10. zcount key min max返回scoremin,max区间的

17、元素个数11. zinterstore dest numkeys key1 key2 weights weight1 weight2 aggregate sum|max|min求key1 key2的交际并存放在dest集合中,可以指定其权重weight,也可以使用绝活运算sum|min|max注意:权重使用是 weight*score 详细:ZINTERSTORE destination numkeys key key . WEIGHTS weight weight . AGGREGATE SUM|MIN|MAX注意:numkeys必须指定,为求交集的key的个数例子:127.0.0.1:63

18、79 zadd zhangsan 90 chinese 88 math 70 english(integer) 3127.0.0.1:6379 zadd lisi 80 chinese 99 math 80 english 44 other(integer) 4127.0.0.1:6379 zinterstore result 2 zhangsan lisi(integer) 3127.0.0.1:6379 zrange result 0 3 withscores/默认是交集求和1) english2) 1503) chinese4) 1705) math6) 187127.0.0.1:637

19、9 zinterstore result 2 zhangsan lisi weights 2 3/权重的使用score*weight(integer) 3127.0.0.1:6379 zrange result 0 3 withscores1) english2) 3803) chinese4) 4205) math6) 473127.0.0.1:6379 zinterstore result 2 zhangsan lisi aggregate max/聚合的使用(integer) 3127.0.0.1:6379 zrange result 0 3 withscores1) english2)

20、 803) chinese4) 905) math6) 99127.0.0.1:6379 zinterstore result 2 zhangsan lisi weights 2 3 aggregate min/聚合与权重一起使用(integer) 3127.0.0.1:6379 zrange result 0 3 withscores1) english2) 1403) math4) 1765) chinese6) 18012. ZUNIONSTORE destination numkeys key key . WEIGHTS weight weight . AGGREGATE SUM|MI

21、N|MAX ZUNIONSTORE命令计算numkeys联合排序按指定键,并将结果存储在目的地。它是强制性的传递的输入键和其他(任选)参数之前,以提供输入键(numkeys)的数量13. zincrby key increment value为某个元素的score值增加increment如:127.0.0.1:6379 zincrby result 10 english150127.0.0.1:6379 zrange result 0 -1 withscores1) english2) 1503) math4) 1765) chinese6) 180七、HASH数据类型相关命令1. hset

22、key field value把key中的field域的值设为value,如果没有就添加,如果有就覆盖2. hmset key filed1 value1 fields value2设置多个域的值3. hget key field返回key中的field域的值4. hmget key field1 field2 返回key中的多个field的值5. hgetall key返回key中的所有域和值6. hdel key field删除key中的field域7. hlen key返回key中元素的数量8. hexists key field判断key中有没有field域,存在返回1反之09. hi

23、ncrby key field value为哈希表 key 中的域 field 的值加上增量value10. hincrbyfloat key field value为哈希表 key 中的域 field 的值加上浮点增量value11. hkeys key返回key中所有的域12. hvals key返回key中所有的value八、redis事务 redis支持简单的事务(不支持回滚,可以需要队列里的命令) redis和mysql事务的对比 mysqlredis开启start transactionmulti语句普通sql普通命令失败rollback会馆discard取消成功commitexe

24、c redis开启事务后,所有的语句都放在一个队列里。注意:rollback和discard区别 如果已经成功执行了2条语句,第3条语句出错 rollback后,前面2条的语句影响小时 discard只是结束本次是事务前的2条语句造成的影响仍然还在 在multi后面的语句中,语句出错可能有2种情况1、 语法本身问题这种,exec时报错,所有语句都不得执行2、 语法本身没有错,但使用对象有问题,比如zadd操作link对象exec后,会执行正确的语句,并跳过有不适当的语句如何避免这种zadd操作link这种呢,由程序员负责redis的事务中,启用的乐观锁,只负责监测key有没有被改动过。watc

25、h命令:watch key1 key2监控key,在执行事务前使用该命令进行监视unwatch:取消所有的watch监视,但是unwatch不能用在事务里九、频道发布与消息订阅1. publish channel content发布消息,返回发布到监听者的个数2. subscribe channel1 channel2监听频道消息,可以同时监听多个3. psubscribe pattern使用通配符监听多个频道消息如:psubcribe news*/监听以news开头的广播4. pubsub channels pattern列出当前活跃的频道, 活跃频道指的是那些至少有一个订阅者的频道, 订阅模式的客户端不计算在内。pattern 参数是可选的:如果不给出 pattern 参数,那么列出订阅与发布系统中的所有活跃频道。如果给出 pattern 参数,那么只列出和给定模式 pattern 相匹配的那些活跃频道。5. pubsub number channel-1 .

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1