设为首页 收藏本站
查看: 471|回复: 0

[经验分享] 系统学习redis之一——基础概念

[复制链接]

尚未签到

发表于 2018-11-2 07:44:24 | 显示全部楼层 |阅读模式
前言:
  redis集群搭建过很多次,也用过一些基础的命令,能解决一些常规的异常。但是因为平时对数据这块用得不多,一直没有很系统的学习过redis。这次将redis的知识好好学习了一下,记录为学习笔记《系统学习redis》系列。
NoSQL介绍
  非关系型数据库:NoSQL
  关系型数据库:MySQL、SQLserver、Oracle  关系型数据库在web2.0上对高并发,暴露出了一些性能问题
  NoSQL 是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如遵循SQL标准、ACID属性、表结构等。
  这类NoSQL数据库的特点:

  • 非关系型的
  • 分布式的
  • 开源的
  • 水平可扩展的  关于ACID属性:
      例如小明和小红各有100块钱,现在让小明给小红转账100 ,那么小明的账户就减去100元,还剩0元,小红的账户加上100元,有200元,这个过程就称作一个事务。但是如果当小明的账户上减去了100元,服务器就宕机了,这会儿小红的账户还没有加上这100元,这个事务就没有完成。这时候小明的100就不会减成功,整个事务就会退回到初始状态。也就是说,要整个事务的所有流程都完成,这个事务才会真正执行成功;只要事务的有一个步骤没有成功,整个事务就会退回到初始状态。这就是ACID属性。

Nosql特点
  1、处理超大量的数据;
  2、运行在便宜的PC服务器集群上
  3、击碎了性能瓶颈,比如MySQL需要很多优化,Nosql就不需要,性能非常高
NoSQL适用场景
  1、对数据高并发读写:MySQL到进行上万次的查询可能还OK,但是上万次写的话,对硬盘I/O的要求非常高,可能会效率低下。NOSQL就会很轻松
  2、对海量数据的高效率存储和访问
  3、对数据的高可扩展性和高可用性。比如MySQL有变动的时候,改表结构什么的很麻烦,nosql就不需要,没有固定表结构
redis介绍
redis基础概念
  Redis是一个开源的,先进的key-value存储。它通常被称为数据结构服务器,因为键可以包含字符串、哈希、链表、集合和有序集合
  Redis是一个key-value存储系统。它支持存储的value类型很多,包括string(字符串)、list(链表)、set(集合)、zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集和并集及更丰富的操作,Redis支持各种不同方式的排序。为了保证效率,数据都是缓存在内存中,它也可以周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件
  redis在新浪微博的使用方式
  1、应用程序直接访问redis进行读写操作(redis一旦宕机,访问就崩掉了)
  2、应用程序直接访问redis,当redis访问失败,就访问MySQL(MySQL和redis数据同步,如果redis宕机,也能访问到数据)
redis适用场合
  1、适用于取最新的N个数据的操作;
  2、适用于排行榜的应用:例如要取TOP1、TOP2等着这种TOPn的操作
  3、适用于需要精确设定过期时间的应用,redis可以对数据设置精确的过期时间,这是MySQL做不到的
  4、适用于计数器的应用
  5、适用于Uniq操作,获取某段时间所有数据排重值
  6、适用于实时系统,反垃圾系统
  7、适用于Pub/sub构建实时消息系统(也就是发布与订阅。这是redis独有的系统)
  8、适用于构建队列系统:list
  9、用redis做缓存
  redis和MySQL、mongodb的相同和不同点:
  1、三者都有“库”的改建
  2、MySQL有“表”的概念,redis没有,MongoDB里面是“集合”
  3、MySQL有“字段”、“行和列”的概念,但是redis和MongoDB没有
redisMySQLMongoDB“库”的概念库库库“表”的概念无表collections”字段/行和列“无字段/行/列无Redis的常见配置:
  daemonize                          如果需要在后台运行,把该项改成yes
  pidfile                                    配置多个pid的地址,默认是在/var/run/redis.pid
  bind                                       绑定IP,设置后只接受来自该IP的请求
  port                                       监听端口,默认是6379
  timeout                                 设置客户端连接时的超时时间,单位为秒
  loglevel                              分为4级,debug、verbose、notice、warning
  logfile                                 配饰log文件地址
  database                           设置数据库的个数,默认使用的数据库为0
  save                                设置redis进行数据库镜像的频率,备份数据
  rdbcompression              在进行镜像备份时,是否进行压缩
  Dbfilename                     镜像备份文件的文件名
  Dir                                         数据库镜像备份的文件放置路径
  Slaveof                               设置数据库为其他数据库的从数据库
  Masterauth                       主数据库连接需要的密码验证
  Requirepass                     设置登录时需要使用的密码
  Maxclients                        限制同时连接的客户数量
  Maxmemory                       设置redis能够使用的最大内存
  Appendonly                      开启append only 模式
  Appensfsync                    设置对appendonly.aof文件同步的频率
  vm-enabled                      是否开启虚拟内存支持
  vm-swap-file                     设置虚拟内存的交换文件路径
  vm-max-memory               设置redis使用的最大物理内存大小
  vm-page-size                    设置虚拟内存的页大小
  vm-pages                            设置交换文件的总的page数量
  vm-max-threads              设置VMIO同时使用的线程数量
  Glueoutputbuf                 把小的输出缓存存放在一起
  Activerehashing             重新hash
  hash-max-zipmap-entries     设置hash的临界值


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-629575-1-1.html 上篇帖子: 76.Redis-chinantfy的博客 下篇帖子: Redis缓存数据库安全加固指导(一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表