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

免费简约ppt模板河北seo人员

免费简约ppt模板,河北seo人员,网站建设包含哪些方面,wordpress for bae下载目录 简介 什么是Redis 特点 优势 数据库对比 应用场景 安装与配置 下载 上传解压 安装gcc 编译 查看安装目录 后端启动 测试 系统服务配置 Redis数据类型 通过命令操作Redis String(字符串) Hash(哈希) List…

目录

简介

什么是Redis

特点

优势

数据库对比

应用场景

安装与配置

下载

上传解压

安装gcc

编译

查看安装目录

后端启动

测试

系统服务配置

Redis数据类型

通过命令操作Redis

String(字符串)

Hash(哈希)

List(列表)

Set(集合)



简介

什么是Redis

        Redis 全称 Remote Dictionary Server(即远程字典服务),它是一个基于内存实现的键值型非关系(NoSQL)数据库,由意大利人 Salvatore Sanfilippo 使用 C 语言编写。

NoSQL = Not Only SQL 不仅仅是SQL,非关系型数据库

        Redis 遵守 BSD 协议,实现了免费开源,其最新版本是 7.0+,常用版本包括 3.0 、4.0、5.0、6.0。自 Redis 诞生以来,它以其超高的性能、完美的文档和简洁易懂的源码广受好评,国内外很多大型互联网公司都在使用 Redis,比如腾讯、阿里、Twitter、Github 等等。

提示:Redis官网(Redis - The Real-time Data Platform)提供了完善的社区环境、文档说明,以及更新支持。

        常见的内存型数据库,除 Redis 之外,还有 Oracle Berkeley DB(甲骨文旗下的一款产品)、SQlite(轻量级内存数据库)、Memcache(键值型分布式缓存数据库)、Altibase(基于内存的高性能数据库)。

特点

  • Redis 不仅可以将数据完全保存在内存中,还可以通过磁盘实现数据的持久存储

  • Redis 支持丰富的数据类型,包括 string、list、set、zset、hash 等多种数据类型,因此它也被称为“数据结构服务器”;

  • Redis 支持主从同步,即 master-slave 主从复制模式。数据可以从主服务器向任意数量的从服务器上同步,有效地保证数据的安全性;

  • Redis 支持多种编程语言,包括 C、C++、Python、Java、PHP、Ruby、Lua 等语言。

        与 SQL 型数据库截然不同,Redis 没有提供新建数据库的操作,因为它自带了 16 (0—15)个数据库(默认使用 0 库)在同一个库中,key 是唯一存在的、不允许重复的,它就像一把“密钥”,只能打开一把“锁”。键值存储的本质就是使用 key 来标识 value,当想要检索 value 时,必须使用与 value 相对应的 key 进行查找。

        Redis 数据库没有“表”的概念,它通过不同的数据类型来实现存储数据的需求,不同的数据类型能够适应不同的应用场景,从而满足开发者的需求。

单线程的Redis为什么这么快呢?

        Redis 的底层是一个单线程模型,单线程指的是使用一个线程来处理所有的网络事件请求,这样就避免了多进程或者多线程切换导致的 CPU 消耗,而且也不用考虑各种锁的问题。虽然是单线程,但可以开多实例弥补

        Redis 为了充分利用单线程,加快服务器的处理速度,它采用 IO 多路复用模型来处理客户端与服务端的连接,这种模型有三种实现方式,分别是 select、poll、epoll。Redis 正是采用 epoll 的方式来监控多个 IO 事件。当客户端空闲时,线程处于阻塞状态;当一个或多个 IO 事件触发时(客户端发起网路连接请求),线程就会从阻塞状态唤醒,并同时使用epoll来轮询触发事件,并依次提交给线程处理。

注意:“多路”指的是多个网络连接,“复用”指的是复用同一个线程。多路 IO 复用技术可以让单个线程高效的处理多个连接请求。

优势

  • 性能极高:Redis 基于内存实现数据存储,它的读取速度是 110000次/s,写速度是 81000次/s;

  • 多用途工具: Redis 有很多的用途,比如可以用作缓存、消息队列、搭建 Redis 集群等;

  • 命令提示功能:Redis 客户端拥有强大的命令提示功能,使用起来非常的方便,降低了学习门槛;

  • 可移植性:Redis 使用用标准 C语言编写的,能够在大多数操作系统上运行,比如 Linux,Mac,Solaris 等。

数据库对比

        Redis 用来缓存一些经常被访问的热点数据、或者需要耗费大量资源的内容,通过把这些内容放到 Redis 中,可以让应用程序快速地读取它们。例如,网站的首页需要经常被访问,并且在创建首页的过程中会消耗较多的资源,此时就可以使用 Redis 将整个首页缓存起来,从而降低网站的压力,减少页面访问的延迟时间。

        我们知道,数据库的存储方式大体可分为两大类,基于磁盘存储和基于内存存储。磁盘存储的数据库,因为磁头机械运动以及系统调用等因素导致读写效率较低。Redis 基于内存来实现数据存取,相对于磁盘来说,其读写速度要高出好几个数量级。下表将 Redis 数据库与其他常用数据库做了简单对比:

名称类型数据存储选项附加功能
Redis基于内存存储的键值非关系型数据库字符串、列表、散列、有序集合、无序集合发布与订阅、主从复制、持久化存储等
Memcached基于内存存储的键值缓存型数据库键值之间的映射为提升性能构建了多线程服务器
MySQL基于磁盘的关系型数据库每个数据库可以包含多个表,每个表可以包含多条记录; 支持第三方扩展。支持 ACID 性质、主从复制和主主复制
MongoDB基于磁盘存储的非关系文档型数据库每个数据库可以包含多个集合,每个集合可以插入多个文档支持聚合操作、主从复制、分片和空间索引

        Redis 基于内存来实现数据的存储,因此其速度非常快。但是我们知道,计算机的内存是非常珍贵的资源,所以 Redis 不适合存储较大的文件或者二进制数据,否则会出现错误,Redis 适合存储较小的文本信息。理论上 Redis 的每个 key、value 的大小不超过 512 MB。

总得来说,上述数据库各有优势,当我们选用数据库时,也要因地制宜,选择一款与业务场景最相符合的数据库。

应用场景

  • 缓存:合理的使用 缓存 能够明显加快访问的速度,同时降低数据源的压力。这也是 Redis 最常用的功能。Redis 提供了 键值过期时间EXPIRE key seconds)设置,并且也提供了灵活控制 最大内存 内存溢出 后的 淘汰策略

  • 排行榜:每个网站都有自己的排行榜,例如按照 热度排名 的排行榜,发布时间 的排行榜,答题排行榜 等等。Redis 提供了 列表list)和 有序集合zset)数据结构,合理的使用这些数据结构,可以很方便的构建各种排行榜系统。

  • 计数器:计数器在网站应用中非常重要。例如:点赞数1浏览数 1。还有常用的 限流操作,限制每个用户每秒 访问系统的次数 等等。Redis 支持 计数功能INCR key),而且计数的 性能 也非常好,计数的同时也可以设置 超时时间,这样就可以实现限流

  • 社交网络:赞/踩,粉丝,共同好友/喜好,推送,下拉刷新等是社交网站必备的功能。由于社交网站 访问量通常比较大,而且传统的数据库 不太适合保存这类数据,Redis 提供的 数据结构 可以相对比较容易实现这些功能。

  • 消息队列:Redis 提供的 发布订阅PUB/SUB)和阻塞队列 的功能,虽然和专业的消息队列(RocketMQ/RabbitMQ,MQ全称:Message Queue)比,还不够强大,但对于一般的消息队列功能基本满足。

安装与配置

下载

进入redis官网下载对应版本的Redis服务,这里使用的是redis-6.2.1。

上传解压

将下载的redis-6.2.1.tar.gz压缩包上传至服务器。

# 切换目录
cd /usr/local/mytools
# 上传
rz  redis-6.2.1.tar.gz
# 解压
tar -zxf redis-6.2.1.tar.gz -C /usr/local

安装gcc

yum -y install gcc

编译

将当前目录改为: /usr/local/redis

make && make install

 

查看安装目录

cd /usr/local/bin

目录介绍:

  • redis-benchmark:性能测试工具,可以在自己本子允许,看看自己本子性能如何

  • redis-check-aof:修复有问题的AOF文件

  • redis-check-dump:修复有问题的dump.rdb文件

  • redis-sentinel:redis集群使用

  • redis-server:redis服务器启动命令

  • redis-cli:客户端,操作入口

后端启动

使用vi或者vim命令修改/usr/local/redis-6.2.1/redis.conf中的配置,将后台启动设置daemonize改为yes,如下:

daemonize yes

启动redis

redis-server /usr/local/redis-6.2.1/redis.conf

查看进程

ps -ef | grep redis

 

关闭redis服务

# 方式一:
kill -9 pid
# 方式二:
redis-cli shutdown

测试

执行 redis-cli 即可进入redis命令窗口,然后就可以执行redis命令了。

[root@localhost bin]# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit

系统服务配置

# 切换到指定目录
cd /usr/lib/systemd/system/
# 上传redis.service服务文件
rz redis.service

修改redis.service配置:

[Unit]
Description=Redis
After=syslog.target network.target remote-fs.target nss-lookup.target
​
[Service]
Type=forking
#修改redis-server和redis.conf的路径
ExecStart=/lky/redis-5.0.0/src/redis-server /lky/redis-5.0.0/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID 
ExecStop=/bin/kill -s QUIT $MAINPID 
PrivateTmp=true
​
[Install]
WantedBy=multi-user.target

重载、自启动及启停服务

# 重载服务
systemctl daemon-reload
# 自启动服务
systemctl enable redis
# 禁用自启动服务
systemctl disable redis
# 启动服务
systemctl start redis
# 停止服务
systemctl stop redis
# 重启服务
systemctl restart redis

Redis数据类型

Redis默认端口6379,默认16个数据库,类似数组的下标从0开始,初始默认使用0号。可使用select命令切换数据库:

select index
  • String(字符串)

        String 是 Redis 最基本的数据类型。字符串是一组字节,在 Redis 数据库中,字符串具有二进制安全(binary safe)特性,这意味着它的长度是已知的,不由任何其他终止字符决定的,一个字符串类型的值最多能够存储 512 MB 的内容。

  • Hash(哈希表)

        Redis hash是一个键值对集合。Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。类似于java里面的Map<String,Object>

  • List(列表)

        Redis List 中的元素是字符串类型,其中的元素按照插入顺序进行排列,允许重复插入,最多可插入的元素个数为 2^32 -1 个(大约40亿个),可以添加一个元素到列表的头部(左边)或者尾部(右边)。

  • Set(集合)

        Redis Set 是一个字符串类型元素构成的无序集合。在 Redis 中,集合是通过哈希映射表实现的,所以无论是添加元素、删除元素,亦或是查找元素,它们的时间复杂度都为 O(1)。

  • Zset(有序集合)

        Redis zset 是一个字符串类型元素构成的有序集合,集合中的元素不仅具有唯一性,而且每个元素还会关联一 个 double 类型的分数,该分数允许重复。Redis 正是通过这个分数来为集合中的成员排序。

通过命令操作Redis

String(字符串)

set key          #保存
get key          #获取
​
type key         #查看类型
keys *或keys key #查看所有或者指定的key

Hash(哈希)

hset key field1 value1 [field2 value2]  #同时将多个field-value设置到哈希表key中
hget key field                          #获取指定的字段值
hdel key field                          #删除指定的字段值
hgetall key                             #查询指定key的所有字段
hexists key field                       #查询指定key中的字段是否存在
hlen key                                #获取指定key中的长度

List(列表)

lpush key value1 value2 value3          #将一个或多个值插入到列表头部
llen key                                #获取列表的长度
lindex key index                        #根据索引获取列表中的元素
lrange key start stop                    #查看指定范围内的元素

Set(集合)

sadd key value1 [value2]                #向集合添加一个或多个元素
scard key                               #获取集合中的元素数量
sscan key cursor [MATCH pattern] [COUNT count]   #迭代集合中的元素
exists key                              #是否存在
http://www.tj-hxxt.cn/news/27956.html

相关文章:

  • 网站后台费用免费个人自助建站
  • 哪个网站做美食视频软件德州百度推广公司
  • python做网站 不适合平谷头条新闻
  • pascal建设网站网站优化有哪些类型
  • 泉州网正规seo排名公司
  • 技术先进的网站建设公司百度公司高管排名
  • 软件定制公司排名深圳高端seo外包公司
  • 网站开发架构分类电商培训机构需要什么资质
  • 西安设计工作室深圳网站优化推广
  • 微赞直播新区seo整站优化公司
  • 做企业网站收费多少钱搜索引擎下载
  • 建设电子商务网站总结微信营销的成功案例
  • 做网站的前端框架汕头seo排名
  • 汉化版网站开发软件seoul是哪个城市
  • 外国网站做vr站长seo软件
  • 外贸网站支付接口广州网络推广哪家好
  • 新手学网站建设视频教程共30课高清版线上推广策划方案
  • 旅行社网站建设哪家好seo词条
  • 济南网站建设分销商城seo站长综合查询工具
  • 国内做焊接机器人平台网站中国企业网络营销现状
  • 辽宁政府采购网招标公告郑州seo线上推广技术
  • 专业网站的特点网络营销文案实例
  • 企业网站建设方案应该怎么做在线域名解析ip地址
  • 网站seo月报seo网站营销推广公司
  • 做一件代发的网站厦门网站推广公司哪家好
  • 广州品牌策划公司有哪些怎么优化一个网站
  • 做饼的网站网站自然优化
  • cpa个人网站怎么做媒体资源
  • 我想在购物网站做代理推广软件一键发送
  • 湖南微网站开发新网站怎么快速收录