已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电脑语言Redis学习总结在工作过中运用到了redis的相关知识,在结合多方资料后,加深了对于redis的使用和理解,下面就是电脑语言Redis学习总结,快来看一看吧。最近在工作中使用到了redis的相关缓存的知识,之前对redis的理解仅仅局限于缓存数据、redis分布式锁的简单使用,了解的知识面很窄。在结合了多方资料和虚机、java代码进行实操后,加深了对redis的使用和理解。趁热打铁,对学习到的知识做一下总结。本次学习笔记 将从以下几个方面进行学习总结:NoSql 简单介绍* Redis的基本数据类型一、NoSql 简单介绍1、NoSql是什么?NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充。2、能解决什么?为了解决高并发、高可扩展、高可用、大数据存储问题而产生的数据库解决方案,就是NoSql数据库。3、该怎么用? NoSql数据库的4大分类 :KV键值,存储数据库(memcache、Redis的存储类型)-本次学习redis存储数据库文档型数据库(MongoDB)-之后学习列存储数据库(HBase)-之后学习图形数据库(Neo4J)-之后学习4、分布式数据中需要遵循的CAP原理C:Consistency(强一致性)A:Availability(可用性)P:Partition tolerance(分区容错性)没有NosQL数据库能同时满足这三点这句话我个人的理解就是,在对于数据的强一直性和数据的分区容错性之间,系统更加倾向于接受分区容错性。在分布式数据库中有个3进2的原则,就是一个分布式系统中,最多只能同时满足CA、CP、AP相互使用。二、Redis的基本数据类型String:在项目中最常见的一个使用方式就是,用来缓存用户的信息, 将用户信息的结构体使用JSON序列化成字符串,然后将序列化后的字符串放入reids的缓存中进行存储。从缓存中取用户信息会经过一次反序列化的过程。当字符串长度小于 1M 时,扩容都是加倍现有的空间,如果超过 1M,扩容时一次只会多扩 1M 的空间。需要注意的是字符串最大长度为 512M。参考资料 操作实例单个键值的存取set k1 v1OKget k1"v1"del k1(integer) 1get k1(nil)多个键值的存取set k2 v2OKmget k1 k2 k3# 返回一个列表1) "v1"2) "v2"3) (nil)mset k1 1 k2 2 k3 v3mget k1 k2 k31) "1"2) "2"3) "v3"key 值的过期策略set k4 v4get k4"v4"expire k4 5 # 5s 后过期. # wait for 5sget k4(nil)List(链表): redis的列表类似java的LinkedList,是链表而不是数据,插入和删除速度很快,O(1),索引定位很慢 O(n)。Redis的列表结构常用来做异步队列使用,将需要延后处理的任务结构体序列化成字符串塞进redis的列表,另一个线程从这个列表中轮询数据进行处理。当列表弹出了最后一个元素之后,该数据结构自动被删除,内存被回收。参考资料 操作实例 右进左出(队列)rpush nums 1 2 3(integer) 3llen nums(integer) 3lpop nums"1"lpop nums"2"lpop nums"3"lpop nums(nil)右进右出(栈)rpush nums 4 5 6(integer) 3rpop nums"6"rpop nums"5"rpop nums"4"rpop nums(nil)Hash:相当于hashmap,hash结构也可以存储用户的信息,可以对用户结构中的每个字段单独存储, 这样当我们需要获取用户信息时可以进行部分获取。参考资料 操作实例hset books java "think in java# 命令行的字符串如果包含空格,要用引号括起来(integer) 1hset books golang "concurrency in go"(integer) 1hset books python "python cookbook"(integer) 1hgetall books # entries(),key 和 value 间隔出现1) "java"2) "think in java"3) "golang"4) "concurrency in go"5) "python"6) "python cookbook"hlen books(integer) 3hget books java"think in java"hset books golang "learning go programming# 因为是更新操作,所以返回 0(integer) 0hget books golang"learning go programming"hmset books java "effective javapython "learning pythongolang "modern golang programming# 批量 setOKSet:相当于Hashset,内部的键值对是无序的惟一的,set结构可以存储活动中中奖的用户ID,因为有去重的功能,可以保证同一个用户不会中奖两次。参考资料 操作实例sadd books python(integer) 1sadd books python # 重复(integer) 0sadd books java golang(integer) 2smembers books # 注意顺序,和插入的并不一致,因为 set 是无序的1) "java"2) "python"3) "golang"sismember books java # 查询某个 value 是否存在,相当于 contains(o)(integer) 1sismember books rust(integer) 0scard books # 获取长度相当于 count()(integer) 3spop books # 弹出一个"java"zset:类似于SortedSet和HashMap的结合体,set既可以保证value的唯一性,另一方面可以给每个value 赋予一个值,代表着排序权重 zset 可以用来存储粉丝列表,value值是粉丝的用户ID,score是关注时间,对粉丝类表按照关注时间进行排序 参考资料 操作实例 zadd books 9.0 "think in java"(integer) 1zadd books 8.9 "java concurrency"(integer) 1zadd books 8.6 "java cookbook"(integer) 1zrange books 0 -1 # 按 score 排序列出,参数区间为排名范围1) "java cookbook"2) "java concurrency"3) "think in java"zrevrange books 0 -1 # 按 score 逆序列出,参数区间为排名范围1) "think in java"2) "java concurrency"3) "java cookbook"zcard books # 相当于 count()(integer) 3zscore books "java concurrency# 获取指定 value 的 score"8.9000000000000004# 内部 score 使用 double 类型进行存储,所以存在小数点精度问题 zrank books "java concurrency# 排名(integer) 1zrangebyscore books 0 8.91 # 根据分值区间遍历 zset1) "java cookbook"2) "java concurrency"zrangebyscore books -inf 8.91 withscores # 根据分值区间 (-∞, 8.91 遍历 zset,同时返回分值。inf 代表 infinite,无穷大的意思。1) "java cookboo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玻璃微珠成型工标准化测试考核试卷含答案
- 采气工班组协作能力考核试卷含答案
- 水泥混凝土制品制作工安全理论模拟考核试卷含答案
- 2026年患者投诉处理与沟通技巧课件
- 集材工工作合规化测试考核试卷含答案
- 混凝土工诚信强化考核试卷含答案
- 乐器设计师道德竞赛考核试卷含答案
- 印花配色打样工岗前安全生产基础知识考核试卷含答案
- 味精提取工岗位实操水平考核试卷含答案
- 镁电解工安全生产知识竞赛考核试卷含答案
- 胡杨林管理站工作制度
- 管理会计(第五版)邵敬浩全套教学课件
- k近邻算法课件
- 控告申诉业务竞赛含答案
- 2025-2026学年全国初中八年级数学竞赛模拟卷(解析版八年级全国)
- 4.1人的认识从何而来 课件 2025-2026学年统编版高中政治必修四哲学与文化
- 江苏苏州市2025-2026学年七年级上学期期中阳光测试语文卷(无答案)
- 2025年北森人才综合测评试题及答案
- 中止施工期间安全保障措施方案
- 煤粉管道测厚施工方案
- 2025年合肥市社会化工会工作者招聘34人笔试备考题库及答案解析
评论
0/150
提交评论