当前位置: 首页 > wzjs >正文

好看的网站首页欣赏c 手机网站开发模板

好看的网站首页欣赏,c 手机网站开发模板,黑龙江省新闻,标志设计作业从这个系列开始,就要开始更新Redis的学习历程了,欢迎大家点赞阅读! 目录 1 什么是Redis 2 Redis特性 2.1 速度快 2.2 基于键值对的数据结构 2.3 持久化 2.4 批量执行 2.5 可扩展性 2.6 集群 2.7 高可用性 3 配置Redis 3.1 符号链…

        从这个系列开始,就要开始更新Redis的学习历程了,欢迎大家点赞阅读!

目录

1 什么是Redis

2 Redis特性

2.1 速度快

2.2 基于键值对的数据结构

2.3 持久化

2.4 批量执行

2.5 可扩展性

2.6 集群

2.7 高可用性

3 配置Redis

3.1 符号链接

3.2 Redis配置文件

4 启动Redis

5 停止Redis

6 进入redis客户端


1 什么是Redis

        Redis是一种基于键值对的NoSQL数据库,数据存储在内存中,可作为数据库、缓存、消息中间件(消息队列,削峰填谷)等许多功能的使用。

        由于存储在内存,因此Redis最大的特性就是“快”,基于谷歌给出的各层硬件执行速率:基于内存的是100ns,而基于磁盘的是10000000ns,可见Redis要比MySQL快近5个数量级。为什么需要Redis而不直接定义变量(因为变量也是存储在内存的)?Redis的初衷是作为消息中间件使用,消息中间件用于进程间通信。基于网络,在分布式系统中,由于进程的隔离性,多机间的进程就需要通信,而Redis可以把数据存储在内存中,让多机都可以访问自己内存的数据,因此Redis的应用场景是分布式系统

        然而Redis的缺点是存储容量小,因此常常把Redis和MySQL结合使用。“二八原则”,20%的热点数据能满足80%的访问需求。Redis作为缓存存储热点数据(满足经常访问的需求),而MySQL作为数据存储的主容器,存储全量数据(全部的数据)。就可以让系统同时满足高性能和大容量存储的特性,不过这也会引发Redis和MySQL的数据一致性问题,后续介绍。

2 Redis特性

2.1 速度快

        Redis的速度快(相对于MySQL之类的关系型数据库)主要有以下原因:

        (1)存储在内存中。

        (2)使用单线程。多线程并不一定可以提高速度,多线程的优势是CPU计算密集型任务,而Redis大多是对内存中的数据存取和修改,不会消耗很多CPU时间,此时频繁加锁解锁和线程间的阻塞唤醒就会成为速度的累赘。

        (3)Redis的底层实现简单,核心业务简单,都是简单的操作内存中的数据结构。

        (4)Redis在网络方面使用IO多路复用,一个线程管理多个socket。

        注意:什么是IO多路复用?客户端服务器结构下,一个服务器会对多个客户端同时服务。基于http协议,客户端访问服务器时,通常建立连接,即使用一个线程并分配一个socket来接收请求。如果有多个客户端同时访问就需要多个线程并分配多个socket来处理。但是同一时间并不是所有的socket都在工作,因此可以用一个线程管理多个socket,这就是IO多路复用。

        Linux提供了3套API来控制IO多路复用:select、poll和epoll。现在主要都使用epoll(运行效率最高),Java标准库中提供NIO库来使用epoll进行IO多路复用。epoll就是在IO多路复用机制上增加事件通知/回调机制,即一个事件到来时会通知线程进行执行(对应就是哪个socket中有新到的请求需要处理,在操作系统层面epoll就会通知该socket所属的线程来进行处理)。当然IO多路复用的前提是socket请求不频繁,否则一个线程就处理不过来。

        (5)Redis使用C语言编写,C语言更接近底层。(存疑,因为MySQL也是C语言开发的,并不是因为用什么语言导致快慢,而是做的事不同导致的快慢。MySQL主要做了更多复杂的操作,并且从硬盘中读取,因此更慢)

2.2 基于键值对的数据结构

        Redis主要基于键值对存储,对于键通常采用String类型,对于值有多种类型:S字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(ordered set/zet),同时在字符串的基础之上演变出了位图(Bitmaps)和HyperLogLog两种神奇的数据结构。

2.3 持久化

        将数据放在内存中是不安全的,一旦发生断电或者机器故障,重要的数据可能就会丢失,因此Redis提供了两种持久化方式:RDB和AOF,即可以用两种策略将内存的数据保存到硬盘中。

2.4 批量执行

        Redis既支持简单的交互命令来操作,又支持通过脚本语言(Lua)来批量执行命令。

2.5 可扩展性

        Redis提供一组API,可以通过C、C++和Rust等编程语言来编写动态链接库(比如Windows的dll文件、Linux的so文件)来扩展Redis的功能,比如支持更多数据结构和命令。

2.6 集群

        Redis支持集群,可以通过引入多个主机部署多个Redis节点来实现水平扩展。类似数据库的分库分表,每个节点各自存储部分数据,避免查询压力过大。

2.7 高可用性

        Redis支持备份/冗余,使用主从节点,从节点作为主节点的备份,一旦主节点崩溃,从节点将会代替主节点继续运行。

3 配置Redis

        安装Redis的过程这里省略(这里使用redis 5),通常是安装在Linux环境下,这里用到的系统是centOS 7。

3.1 符号链接

        由于安装目录很深,不便于Redis查找需要的命令和文件,因此配置符号链接。

        符号链接类似于快捷方式,该符号链接指向了真正的文件或可执行程序,因此通过该链接就可以方便地操作Redis。

        命令:in -s 原文件路径 链接名

        通常bin目录下存储的是可执行命令,etc目录下存储的是配置文件。

3.2 Redis配置文件

        配置bind的ip为0.0.0.0,表示Redis可以被其他主机访问到。

        protected-mode no表示不启动保护模式,允许其他主机连接。

        daemonize yes表示设置守护进程(后台进程)方式启动。这样即使终端关闭进程也不会杀死。

        dir /var/lib/redis表示Redis的工作目录为该目录,这时候Redis如果创建的数据文件都会存储在该目录下面(首先要确保使用mkdir -p创建了该目录)。

        logfile /var/log/redis/redis-server.log是配置Redis的日志目录。

4 启动Redis

        使用Redis安装目录下的src/redis-server命令搭配配置文件即可成功启动(../redis.conf表示redis.conf文件在当前目录的上一级目录下):

        cd /usr/local/redis-5.0.14/src./redis-server ../redis.conf

        如果配置了符号链接,使用符号链接名+配置文件的符合链接名也可以成功启动:

5 停止Redis

        查看Redis的pid:ps aux | grep redis

        杀死pid对应的进程:kill pid

6 进入redis客户端

        由于已经提前配置了进入redis客户端命令的符号链接,因此直接在bin目录下使用符号链接即可:

        其他主机连接redis客户端时,需要使用:redis-cli -h { host } -p { port },host是redis所在主机的ip,port是端口号(默认6379)。

        注意:Redis的特性最重要的是快,但是快一定是相对的。对比直接操作内存的数据结构,通过Redis来操作内存,实际上是要慢。因为Redis是客户端-服务器系统。我们访问的都是客户端,而客户端和服务器之间通过网络通信。因此使用Redis操作内存多了网络通信的开销,比直接操作内存更慢。

        对于可以引入Redis的场合,一定是因为Redis可以解决一些问题。比如作为数据库,Redis可以保证数据不会丢失,关机重启后内存数据会丢失,而Redis有持久化的特性,因此可以保证数据不会丢。作为缓存,Redis的访问速度被MySQL更快,因此存储热点数据更合适。

下篇文章:


文章转载自:

http://Gq2jkicD.dmxzd.cn
http://CifGBf87.dmxzd.cn
http://mgU7oNtO.dmxzd.cn
http://0zYFRbgk.dmxzd.cn
http://KFc6zBzz.dmxzd.cn
http://0yNfHMOK.dmxzd.cn
http://ix27ULhz.dmxzd.cn
http://9xvhKMg8.dmxzd.cn
http://XfMRB6Jo.dmxzd.cn
http://NauHWV5V.dmxzd.cn
http://ojnUkOwD.dmxzd.cn
http://6t1VVxVC.dmxzd.cn
http://Uk3VkAn8.dmxzd.cn
http://1eHfkrj1.dmxzd.cn
http://rbcGFrC6.dmxzd.cn
http://MtQV84Om.dmxzd.cn
http://d5hnphMJ.dmxzd.cn
http://lSgeY1ix.dmxzd.cn
http://HsKYiVwo.dmxzd.cn
http://d8Y7WRkl.dmxzd.cn
http://eMkSuJkQ.dmxzd.cn
http://O7jlntzz.dmxzd.cn
http://heTS5TWT.dmxzd.cn
http://bsjfj8vv.dmxzd.cn
http://rjvcbAv5.dmxzd.cn
http://4aWNYpyi.dmxzd.cn
http://w4xvgLJb.dmxzd.cn
http://OURraHIB.dmxzd.cn
http://DmuWhuSt.dmxzd.cn
http://C26y3eKo.dmxzd.cn
http://www.dtcms.com/wzjs/644302.html

相关文章:

  • 政协网站信息化建设的作用济南家居行业网站开发
  • 网站制作出租黄页引流推广链接
  • 阿里云营销网站建设微信管理系统登录入口
  • 优秀国内个人网站网址网站建设要那些收费项
  • 淘宝店铺 发布网站建设石家庄怎样做网站
  • 城厢区建设局网站浏览器里的广告怎么推广的
  • 网站建设百度云用vs做网站后台开发可以吗
  • asp网站模板源码免费无限下载网站开发的工作要求
  • 广州白云做网站wordpress几万条数据
  • 创新的菏泽网站建设临沂网站群发软件
  • 深圳宝安高端网站建设公司wordpress图片上传卡住
  • 建行官网网站广东莞业工程设计有限公司
  • 怎样给自己的店做网站新乡网站的建设
  • 放单网站建设网站的登录注册页面怎么做
  • 如何做网站的网页网站后期推广方案
  • 传媒公司起名做seo推广做网站有用吗
  • 建设银行官网站下载地址网站建设的第一阶段
  • 企业网站建设硬件wordpress电视剧主题
  • 成都创新互联网站建设学做古装网站
  • 网站添加定位怎么做什么网站模板
  • 百度seo快速见效方法搜索引擎优化的特点
  • 建站公司服务高端网站建设合同
  • 网站开发协议中的注意事项宝塔和WordPress一样吗
  • 天津建设网站首页wordpress修改首页名称
  • 英语写作网站微商城app开发公司
  • flash做的网站网站设置域名
  • 网站建设开头聊城网站建设价位
  • 葫芦岛网站网站建设招生网站模版
  • 陶瓷网站源码嘉兴 网站 建设
  • dw做的网站解压后为什么没了wordpress两个导航栏