• 在项目中使用redis的原因


    1:redis简介:

    redis是Nosql数据库中使用较为广泛的非关系内存数据库,redis内部是一个key-value存储系统。它支持存储的value类型相对更多,包括string(字符串),list(链表),set(集合),zset(sorted set-有序集合)和hash(哈希类型,类似java中的map)。redis基于内存运行并持久化的NoSQL数据库之一,也被人们称为数据库结构服务器。

    2:互联网时代背景下,为什么使用NoSQL?

    1)当数据量的总大小一个机器放不下时。

    2)数据索引一个机器的内存放不下时。

    3)访问量(读写混合)一个实例放不下

    单时代模型:

    如果每次存储成千上万条数据,这样会导致Mysql的性能很差,存储以及读取速度很慢,然后就演变成缓存+mysql+垂直拆分的方式。

    cache作为中间缓存:

    将所有的数据先保存到缓存中,然后再存入mysql中,减少数据库压力,提高效率。但是当数据再次增加到又一个量级,上面的方式也不能满足需求,由于数据库的写入压力增加,Memcached只能缓解数据库的读取压力。读写集中在一个数据库不堪重负,大部分网站开始使用主从复制技术来达到读写分离,以提高读写性能和读写的可扩展性。Mysql的master-slave模式成为这个时候的网站标配。

    主从离模式

    在redis的高速缓存,mysql的主从复制,读写分离的基础之上,这是mysql主库的写压力开始出现瓶颈,而数据量的持续猛增,由于MyISAIM使用表锁,在高并发下会出现严重问题,大量的高并发mysql应用开始使用InnobDB引擎代替MyISAM。

    memcached和redis的比较:

    redis的数据结构:

    2.5Redis的数据结构:

    前言:Redis中存储的数据都为字符串格式的。下面来分别介绍Redis中常用的数据结构。

    • string数据结构

    太简单了,略过。

    •  list数据结构

    概述: 什么是list ,list是一种数据结构,可以当做队列和栈来使用。

    当你从左边添加数据,再从左边取数据,就模拟出栈;当你从右边添加数据,再从左边取数据,就模拟出队列。因此Redis真的很强大,看到栈和队列这样的数据结构,你难道就不激动吗?这样的数据结构太TM好了,能帮我们处理很多棘手的问题。这里我先卖个关子,下面会介绍我在项目中是如何使用Redis解决棘手的问题。

    • set集合

    和list结构差不多,这里不再啰嗦。

    下面就是操作set的一些命令。

    • hash数据结构

    图中的"user:100"就相当于key,而它所指向的类似于表结构的数据就是value,这样的数据结构有利于存储对象数据。也是非常常用的方法。

     

     

     注意:

    redis指令不区分大小写,但是出于规范考虑,应该使用大写
    redis中存放的键是区分大小写的.

     Redis常用命令文档:http://redis.readthedocs.io/en/2.6/

  • 相关阅读:
    win2008服务器信任问题
    切换cmd的目录
    c#后的完整cookie
    c#网络编程-第一章
    c#访问mysql数据库
    标准库hashlib模块
    标准库ConfigParser模块
    标准库shutil
    标准库 xml
    标准库shelve
  • 原文地址:https://www.cnblogs.com/zhouzetian/p/8590837.html
Copyright © 2020-2023  润新知