• Redis----理解随记


    1、缓存优化性能,降低负载
    本地缓存空间有限,也无法共享,所以需要分布式缓存 memcached/redis
    2、NoSql ,泛指非关系型数据库,
    web2.0网站越来越复杂,流量越来越高,数据量越来越大,数据不再是严格的关系型,nosql不是严格面向对象式,类型(key-value hashtable list set) 更灵活,而且通常用内存管理,速度也更快
    3、Redis Remote Dictionary Server 远程字典(内存)服务器
    基于内存管理,实现了多种数据结构,单线程模型的应用程序,提供插入-查询-固化-集群功能
    内存管理:速度快。数据可能丢失,只能做缓存而不是存储
    redis :两种固化到硬盘的方式,一种:snapshot 常用的,速度快,但是如果崩溃可能丢失一段数据
    可以配置一些自动保存策略,1分钟只要又修改就保存,30分钟修改多少次就保存
    save /bgsave 命令 ,主动save阻塞(单线程),bgsave非阻塞(子进程)的
    AOF:通过日志恢复数据,任何操作都需要日志,这个效率太低,数据不会丢失(高可用)
    多种数据结构: string ,hashtable ,set zset list 丰富的数据结构带来了灵活性,可以应对特殊的应用场景
    单线程:线程安全 ,web 就是多线程, sql server 多前程
    多线程可以提升性能,充分利用硬件资源
    nodejs ,redis 单线程
    Redis:内存数据结构操作,很长的链表,日过多个线程同时来操作,为了保证线程安全,不得不加锁,锁多了之后,多线程没有优势,甚至可能更低,redis全部都是内存操作,其实一个线程就够快了,
    (单线程的性能极致是要输给多线程的,CPU调度室,同一个进程的切换肯定比切换进程快)
    原子性:因为全程只有一个吸纳成可以操作数据,完全没有冲突的概念
    就是一个不可分割的追赠里,要么都成功,要么都失败,不会出现中间状态
    Redis 每一个命令都是原子性的

    Virtual Memory :Redis会自动把一些冷门数据存到硬盘,可以存储超过内存的数据

    Redis--SqlServer(执行脚本 上百个命令)
    RDM--SqlServerClient
    Ado.Net--ServiceStack /StackExchange(翻译脚本)
    ServiceStack :付费(6000 query /min)
    StackExchange:免费

  • 相关阅读:
    如何面试前端工程师!
    CSS实现背景透明,文字不透明(各浏览器兼容)
    IE6中伪类:hover的使用及BUG
    jQuery UIdraggable参数学习
    PHP与正则表达式 2 :一些修饰符与preg_match_all
    通过apktool获取apk package name(包名)以及activity name
    jquery.ui.draggable中文文档
    无法加载php_curl.dll解决办法
    ubuntu命令查询版本和内核版本
    linux zip, unzip命令详解[ubuntu]
  • 原文地址:https://www.cnblogs.com/Yida-Tingting/p/12911042.html
Copyright © 2020-2023  润新知