




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电脑语言redis学习总结 在工作过中运用到了redis的相关知识,在结合多方资料后,加深了关于redis的使用和理解,下面就是电脑语言redis学习总结,快来看一看吧。 最近在工作中使用到了redis的相关缓存的知识,之前对redis的理解仅仅局限于"缓存数据'、"redis分布式锁'的简单使用,了解的知识面很窄。在结合了多方资料和虚机、java代码进行实操后,加深了对redis的使用和理解。趁热打铁,对学习到的知识做一下总结。 本次学习笔记 将从以下几个方面进行学习总结: nosql 简单介绍 * redis的基本数据类型 一、nosql 简单介绍 1、
2、nosql是什么? nosql,泛指非关系型的数据库,nosql即not-only sql,它可以作为关系型数据库的优良补充。 2、能解决什么? 为了解决高并发、高可扩大、高可用、大数据存储问题而产生的数据库解决方案,就是nosql数据库。 3、该怎么用? nosql数据库的4大分类 : kv键值,存储数据库(memcache、redis的存储类型)-本次学习redis存储数据库文档型数据库(mongodb)-之后学习 列存储数据库(hbase)-之后学习 图形数据库(neo4j)-之后学习 4、分布式数据中需要遵循的cap原理 c:consistency强一致性 a:availability
3、可用性 p:partition tolerance分区容错性 没有nosql数据库能同时满足这三点 这句话我个人的理解就是,在关于数据的强一直性和数据的分区容错性之间,系统更加倾向于接受"分区容错性'。在分布式数据库中有个3进2的原则,就是一个分布式系统中,最多只能同时满足ca、cp、ap互相使用。 二、redis的基本数据类型 string: 在项目中最常见的一个使用方式就是,用来缓存用户的信息, 将用户信息的结构体使用json序列化成字符串,然后将序列化后的字符串放入reids的缓存中进行存储。从缓存中取用户信息会经过一次反序列化的过程。 当字符串长度小于 1m 时,扩容
4、都是加倍现有的空间,如果超过 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 后过期 . #
5、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
6、 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 (
7、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) python cookbook hlen books (integer) 3 hget books java think in java hset books golang learning go programming # 因为是更新操作,所以返回 0(inte
8、ger) 0 hget books golang learning go programming hmset books java effective java python learning python golang modern golang programming # 批量 setok set: 相当于hashset,内部的键值对是无序的惟一的,set结构可以存储活动中中奖的用户id,因为有去重的功能,可以保证同一个用户不会中奖两次。 参照资料 操作实例 sadd books python (integer) 1 sadd books python # 重复 (integer) 0 s
9、add books java golang (integer) 2 smembers books # 注意顺序,和插入的并不一致,因为 set 是无序的1) java 2) python 3) golang sismember books java # 查询某个 value 是否存在,相当于 contains(o)(integer) 1 sismember books rust (integer) 0 scard books # 获取长度相当于 count() (integer) 3 spop books # 弹出一个 java zset: 类似于sortedset和hashmap的结合体,s
10、et既可以保证value的唯一性,另一方面可以给每个value 赋予一个值,代表着排序权重 zset 可以用来存储粉丝列表,value值是粉丝的用户id,score是关注时间,对粉丝类表按照关注时间进行排序 参照资料 操作实例 zadd books 9.0 think in java (integer) 1 zadd books 8.9 java concurrency (integer) 1 zadd books 8.6 java cookbook (integer) 1 zrange books 0 -1 # 按 score 排序列出,参数区间为排名范围1) java cookbook 2
11、) 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) 3 zscore books java concurrency # 获取指定 value 的 score8.9000000000000004 # 内部 score 使用 double 类型进行存储,所以存在小数点精度问题 zrank books java concurrency # 排名 (integer) 1 zrangebyscore books 0 8.91 # 依据分值区间遍历 zset1) java cookbook 2) java concurrency zrangebyscore books -inf 8.91 withscores # 依据分值区间 (-, 8.91 遍历 zset,同时返回分值。inf 代表 infinite,无穷大的意思。 1) j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 如何正确使用和佩戴劳动防护用品
- 加入艺术团成员协议书(2篇)
- 2024年09月新疆乌鲁木齐市卫生健康委员会所属事业单位面向社会招聘88人笔试历年专业考点(难、易错点)附带答案详解
- 管道工程应急预案完善与演练考核试卷
- 《众媒传播产品介绍》课件
- 电梯轿厢内部空气质量监测与控制技术发展趋势与挑战应对考核试卷
- 2025翡翠购销合同书范本
- 2024年09月广东中山火炬高技术产业开发区管理委员会所属事业单位第一期招聘事业单位人员35人笔试历年专业考点(难、易错点)附带答案详解
- 2024年09月山东第一医科大学附属职业病医院(山东省职业病医院)招聘第二批高级岗位人员10人笔试历年专业考点(难、易错点)附带答案详解
- 煤炭产业可持续发展战略考核试卷
- 运动营养食品生产许可审查方案
- 景区保安投标方案技术标
- 腰椎间盘突出症中医临床路径方案(完整版)
- 关羽单刀赴会
- JCT2110-2012 室内空气离子浓度测试方法
- 网络巡检报告模板
- 血液透析患者心力衰竭的诊断与治疗
- 九宫格数独附答案
- 公文调研方案
- 小学英语四年级下册Unit 4 Part A Let's learn教学设计1
- 胃肠减压评分标
评论
0/150
提交评论