- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电脑语言Redis学习总结
第 PAGE \* Arabic \* MERGEFORMAT 13 页
电脑语言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 v1
OK
get k1
v1
del k1
(integer)1
get k1
(nil)
多个键值的存取
set k2 v2
OK
mget k1 k2 k3#返回一个列表
1)v1
2)v2
3)(nil)
mset k1 1 k2 2 k3 v3
mget k1 k2 k3
1)1
2)2
3)v3
key 值的过期策略
set k4 v4
get k4
v4
expire k4 5 #5s 后过期
... #wait for 5s
get k4
(nil)
List(链表):redis的列表类似java的LinkedList,是链表而不是数据,插入和删除速度很快,O(1),索引定位很慢O(n)。
Redis的列表结构常用来做异步队列使用,将需要延后处理的任务结构体序列化成字符串塞进redis的列表,另一个线程从这个列表中轮询数据进行处理。
当列表弹出了最后一个元素之后,该数据结构自动被删除,内存被回收。
参考资料操作实例右进左出(队列)
rpush nums 1 2 3
(integer)3
llen nums
(integer)3
lpop nums
1
lpop nums
2
lpop nums
3
lpop nums
(nil)
右进右出(栈)
rpush nums 4 5 6
(integer)3
rpop nums
6
rpop nums
5
rpop nums
4
rpop nums
(nil)
Hash:
相当于hashmap,hash结构也可以存储用户的信息,可以对用户结构中的每个字段单独存储,这样当我们需要获取用户信息时可以进行部分获取。
参考资料操作实例
hset books java think in java #命令行的字符串如果包含空格,要用引号括起来(integer)1
hset books golang concurrency in go
(integer)1
hset books python python cookbook
(integer)1
hgetall books #entries(),key 和value 间隔
出现1)java
2)think in java
3)golang
4)concurrency in go
5)python
6)py
您可能关注的文档
- 法律专业毕业论文一.docx
- 电商运营专员工作述职报告.docx
- 电力个人工作总结范文3篇.docx
- 电力树立创新意识.docx
- 学院本科生党支部2018年度-2019年度学年第一学期新党员发展大会活动总结.docx
- 浅谈音乐常规培养的有效措施.docx
- 省级示范小城镇建设调研报告.docx
- 家庭装修合同.docx
- 软件公司实习报告范文三篇.docx
- 小班语言活动:下雨啦.docx
- 主题课程整理大班上.doc
- 2026人教版小学语文三年级上册期末综合试卷3套(打印版含答案解析).docx
- 2026人教版小学语文四年级下册期末综合试卷3套(打印版含答案解析).docx
- 2026人教版小学二年级上册数学期末综合试卷精选3套(含答案解析).docx
- 2026人教版小学语文四年级上册期末综合试卷3套(含答案解析).docx
- 2026人教版小学二年级下册数学期末综合试卷3套(打印版含答案解析).docx
- 2026年地理信息行业年终总结汇报PPT.pptx
- 板块四第二十一单元封建时代的欧洲和亚洲 中考历史一轮复习.pptx
- 中考历史一轮复习:板块四第二十单元古代亚、非、欧文明+课件.pptx
- 第二次工业革命和近代科学文化中考历史一轮复习.pptx
原创力文档


文档评论(0)