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

[经验分享] 一篇文章详解NOsql数据库Redis

[复制链接]

尚未签到

发表于 2018-11-2 08:56:28 | 显示全部楼层 |阅读模式
  一图详解DB的分支产品
DSC0000.jpg

  osql数据库介绍
  是一种非关系型数据库服务,它能解决常规数据库的并发能力,比如传统的数据库的IO与性能的瓶颈,同样它是关系型数据库的一个补充,有着比较好的高效率与高性能。
  专注于key-value查询的redis、memcached、ttserver
  解决以下问题:
  1)对数据库的高并发读写需求
  2)大数据的高效存储和访问需求
  3)高可扩展性和高可用性的需求
  Nosql数据库的应用环境
  1)数据模型比较简单
  2)需要灵活性更强的IT系统
  3)对数据库的性能要求较高
  4)不需要高度数据一致性
  5)对于给定KEY,比较容易映射复杂值的环境
  Nosql软件的分类与特点
  1)key-value键值存储数据库(redis、memcached)
  1.用于内容缓存,适合负载并扩展大的数据集
  2.数据类型是一系列的键值对
  3.有快速查询功能,但存储数据少结构化
  4.对事务的支持不好,数据库故障产生时不可进行回滚
DSC0001.jpg

  2)列存储数据库(HBase)
  1.用于分布式的文件系统
  2.以列簇式存储,将同一列数据存在一起
  3.查找速度快,可扩展强,更容易进行分布式扩展
  4.功能相对局限
DSC0002.jpg

  3)面向文件的数据库(mongoDB)
  1.用于WEB应用较多
  2.数据类型是一系列键值对
  3.查询性能不高,没有统一的查询语法
DSC0003.jpg

  4)图形数据库(Graph)
  1.社交网络应用较多
  2.不容易做分布式的集群方案
  常用的Nosql数据库介绍
  1)memcached
  是一个开源高性能的,具有分布式内存对象的缓存系统
  特点:
  1、安装布署简单
  2、支持高并发、高性能
  3、通过程序或负载均衡可以实现分布式
  4、仅为内存缓存,重启服务数据丢失
  2)memcacheDB
  是新浪基于memcached开发的一个开源项目,具备了事务恢复功能
  特点:
  1、高并发读写
  2、高效存储
  3、高可用数据存储
  生产环境如何选择Nosql数据库
  1、最常规的缓存应用,memcached最合适
  2、持久化存储方案memcacheDB
  3、2000万以内数据量的小数据用memcached
  4、大数据量可以用redis
  redis持久化数据服务
  REmote DIctionary server(redis)是一个 基于key-value键值对的持久化数据库 存储系统,对支持数据存储类型更多,包括字符串、列表、集合等
  是一种 持久化缓存服务 ,会周期的把更新的数据写入磁盘以及把修改操作记录追加到文件里记录下来,还 支持主从同步模式 ,是一个开源的基于C语言编写的,支持网络、内存可持久化的日志型、key-value数据库
  redis持久服务的特点
  key-value键值类型存储系统
  支持数据可靠存储
  单进程单线程高性能服务器
  恢复比较慢
  单机qps(秒并发)可以达到10W
  适合小数据高速读写访问
  redis存储系统优、缺点:
  可以持久化存储数据
  支持每秒10W的读写频率
  支持丰富的数据类型
  所有操作都是原子性的
  支持异机主从复制
  内存管理开销大(低于物理内存的3/5)
  不同命令延迟差别大
  redis持久化介绍
  redis将 数据存储于内存中 ,通过 快照、日志 两种方式实现持久化存储,前者性能高,会有数据丢失的情况,后者相反。
DSC0004.jpg

  redis应用场景
  MYSQL+memcached网站架构的问题:数据量大就需要拆表,需要扩容,数据一致性是个问题
  1)最佳应用场景就是内存服务
  2)作为memcached替代方案
  3)对数据一致性有一定要求但不高的业务
  4)需要更多数据类型支持的业务
  5)需要主从同步及负载均衡的业务
  redis的安装
  要进行主从同步配置,可以实现故障切换,主上禁用数据持久化,从上配置,内存要够大
  wget http://download.redis.io/releases/redis-2.8.24.tar.gz
  [root@redis-m tools]#tar zxf redis-2.8.24.tar.gz
  [root@redis-m tools]#cd redis-2.8.24
  [root@redis-m redis-2.8.24]#make
  [root@redis-m redis-2.8.24]#make PREFIX=/application/redis-2.8.24 install
  [root@redis-m redis-2.8.24]#ln -s /application/redis-2.8.24 /application/redis
  [root@redis-m tools]# tree /application/redis
  /application/redis
  -- bin|-- redis-benchmark #性能测试工具|-- redis-check-aof #检测更新日志|-- redis-check-dump #检查本地数据库rdb文件|-- redis-cli #命令行客户端操作工具|-- redis-sentinel -> redis-server-- redis-server #服务的启动程序
  配置环境变量
  [root@redis-m tools]# echo "PATH=/application/redis/bin:$PATH">>/etc/profile
  [root@redis-m tools]# source /etc/profile
  [root@redis-m tools]# which redis-server
  /application/redis/bin/redis-server
  查看帮助文档
  [root@redis-m tools]# redis-server --help
  Usage: ./redis-server [/path/to/redis.conf] [options]
  ./redis-server - (read config from stdin)
  ./redis-server -v or --version
  ./redis-server -h or --help
  ./redis-server --test-memory
  Examples:
  ./redis-server (run the server with default conf)
  ./redis-server /etc/redis/6379.conf
  ./redis-server --port 7777
  ./redis-server --port 7777 --slaveof 127.0.0.1 8888
  ./redis-server /etc/myredis.conf --loglevel verbose
  启动服务
  [root@redis-m ~]# cd /application/redis/
  [root@redis-m redis]# ll
  total 4
  drwxr-xr-x 2 root root 4096 Mar 22 04:50 bin
  [root@redis-m redis]# mkdir conf
  [root@redis-m redis]# cp /download/tools/redis-2.8.24/redis.conf ./conf/
  [root@redis-m redis]# redis-server /application/redis/conf/redis.conf &
  [6072] 22 Mar 05:00:51.373 # Server started, Redis version 2.8.24
  [6072] 22 Mar 05:00:51.374 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
  #内存不足的时候,数据加载到磁盘可能失效,可以使用命令解决或修改配置文件
  [6072] 22 Mar 05:00:51.375 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
  [6072] 22 Mar 05:00:51.375 The server is now ready to accept connections on port 6379
  [root@redis-m redis]# lsof -i :6379

  COMMAND PID USER FD  TYPE DEVICE>  redis-ser 6072 root 4u IPv6  24271 0t0  TCP :6379 (LISTEN)
  redis-ser 6072 root 5u IPv4 24273 0t0  TCP *:6379 (LISTEN)
  vm.overcommit_memory
  0表示用户空间请求更多内存时,内核尝试估算出余下可用内存
  1表示内核允许最大限度的的使用内存
  关闭服务命令
  [root@redis-m redis]# redis-cli shutdown
  [6072] 22 Mar 05:09:32.699 # User requested shutdown...
  [6072] 22 Mar 05:09:32.699 Saving the final RDB snapshot before exiting.
  [6072] 22 Mar 05:09:32.710  DB saved on disk
  [6072] 22 Mar 05:09:32.711 # Redis is now ready to exit, bye bye...
  [1]+  Done  redis-server /application/redis/conf/redis.conf
  Redis集群生产环境高可用方案实战过程
  如果你现在在JAVA这条路上挣扎,也想在IT行业拿高薪,可以参加我们的训练营课程,选择最适合自己的课程学习,技术大牛亲授,7个月后,进入名企拿高薪。我们的课程内容有:Java工程化、高性能及分布式、高性能、深入浅出。高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点。如果你想拿高薪的,想学习的,想就业前景好的,想跟别人竞争能取得优势的,想进阿里面试但担心面试不过的,你都可以来,q群号为:779792048
  注:加群要求
  1、具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。
  2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。
  3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加。
  4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。
  5.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!


运维网声明 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-629632-1-1.html 上篇帖子: Redis Cluster--运维管理 下篇帖子: Redis高可用集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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