Redis基础

1.Redis基础

1.NoSQL概述

问题现象

在春运使用12306买票,与在淘宝买东西等情况时会出现春节期间买票进不去,进去了刷不着票,原因是以为用户量太大

特征

1.海量用户

2.高并发

这两个现象出现以后,对应的就会造成我们的服务器瘫痪,其实并不是我们的应用服务器,而是我们的关系型数据库。关系型数据库才是最终的罪魁祸首

造成原因

1.性能瓶颈:磁盘IO性能低下

​关系型数据库在存取数据的时候和读取数据的时候他要走磁盘IO。磁盘这个性能本身是比较低的

2.扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群 

关系型数据库,它里面表与表之间的关系非常复杂,就是一张表,通过它的外键关联了七八张表,这七八张表又通过它的外键,每张又关联了四五张表。要想拿到数据,你就要从A到B、B到C、C到D的一直这么关联下去,最终非常影响查询的效率。同时,你想扩展下,也很难

解决思路

1.降低磁盘IO次数,越低越好  ——用内存存储

​2.去除数据间关系,越简单越好  ——不存关系,只存数据

把这两个特征一合并一起,就出来了一个新的概念:NoSQL

NoSQL:即 Not-Only SQL( 泛指非关系型的数据库),作为关系型数据库的补充。 作用:应对基于海量用户和海量数据前提下的数据处理问题

特征

可扩容,可伸缩。SQL数据关系过于复杂,扩容一下难度很高,那Nosql 这种的,不存关系,所以它的扩容就简单一些。

大数据量下高性能。当数据非常多的时候,它的性能高,因为不走磁盘IO,走的是内存,性能肯定要比磁盘IO的性能快一些。

灵活的数据模型、高可用。他设计了自己的一些数据存储格式,这样能保证效率上来说是比较高的,最后一个高可用,我们等到集群内部分再去它

常见 Nosql 数据库

目前市面上常见的Nosql产品:Redis、memcache、HBase、MongoDB

应用场景

Redis基础_第1张图片

2.Redis概述

Redis (Remote Dictionary Server:远程词典服务器) 是用 C 语言开发的一个开源的高性能(内存型)键值对key-value)数据库

特征

1.数据间没有必然的关联关系;

2.内部采用单线程机制进行工作;

3.高性能。官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。

4.多数据类型支持

字符串类型     string

列表类型     list

散列类型     hash

集合类型      set

有序集合类型     zset/sorted_set

5.支持持久化,可以进行数据灾难恢复

redis的应用场景

1.为热点数据加速查询(主要场景)。如热点商品、热点新闻、热点资讯、推广类等高访问量信息等。

2.即时信息查询。如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等。

3.时效性信息控制。如验证码控制、投票控制等。

4.分布式数据共享。如分布式集群架构中的 session 分离。

5.消息队列

3.Redis下载

下载安装包

wget http://download.redis.io/releases/redis-5.0.0.tar.gz

解压安装包

tar -xvf redis-5.0.0.tar.gz
cd redis-5.0.0
ll

编译 (在解压的目录中执行)

make

当执行make时报错 

因为Redis是C实现的,需要gcc来进行编译,所以原因是系统未安装gcc

yum install -y gcc g++ gcc-c++ make

再次执行make,若make出现错误为:致命错误,执行以下命令

make MALLOC=libc

成功后继续操作

安装(在解压的目录中执行)

make install
cd src
cd

使名称变短,方便操作 

ln -s redis-5.0.0 redis
cd redis

Redis基础_第2张图片

4.服务器与客户端启动

启动服务器——参数启动

redis-server [--port port]

范例

redis-server --port 6379

启动服务器——配置文件启动

redis-server config_file_name

范例

redis-server redis.conf

启动客户端

redis-cli [-h host] [-p port]

范例

redis-cli –h 61.129.65.248 –p 6384

注意服务器启动指定端口使用的是--port,客户端启动指定端口使用的是-p。-的数量也不同

  

Redis基础环境设置约定

创建配置文件存储目录

mkdir conf

创建服务器文件存储目录(包含日志、数据、临时配置文件等)

mkdir data

创建快速访问链接

ln -s redis-5.0.0 redis

服务器端设定

配置介绍

设置服务器以守护进程的方式运行,开启后服务器控制台中将打印服务器运行信息(同日志内容相同)

daemonize yes|no # 改为yes就是后台启动,看不到之前的欢迎信息,cmd窗口关闭也没影响
#windows版本的redis不支持后台启动,配置也没有用

绑定主机地址:bind ip

bind 127.0.0.1 #指定当前redis服务运行在哪个ip上(一般都指定为本机)

设置服务器端口

port 6379 #6379是redis的默认端口

日志文件

logfile "日志文件名"

设置服务器文件保存地址:dir path

dir "/redis/data"
windows配置为:dir "./data"(需要在redis安装的目录新建data文件夹)

启动

#启动服务器
redis-server /redis/conf/redis-6379.conf
#查看进程
ps -ef | grep redis

配置为后台启动之后,可以通过ps查看是否启动

客户端配置

服务器允许客户端连接最大数量,默认0,表示无限制。当客户端连接到达上限后,Redis会拒绝新的连接

maxclients count

客户端闲置等待最大时长,达到最大值后关闭对应连接。如需关闭该功能,设置为 0

timeout seconds

日志配置 

设置服务器以指定日志记录级别

loglevel debug|verbose|notice|warning

日志记录文件名

logfile filename

注意:日志级别开发期设置为verbose即可,生产环境中配置为notice,简化日志输出量,降低写日志IO的频度 

5.Redis基本操作

读写信息

设置 key,value 数据

set key value

范例

set name wawa

根据 key 查询对应的 value,如果不存在,返回空(nil)

get key

范例

get name

帮助信息 

获取命令帮助文档

help [command]

范例

help set

获取组中所有命令信息名称

help [@group-name]

范例

help @string

退出命令行客户端模式 

退出客户端

quit 或
exit

快捷键

Ctrl+C

 

你可能感兴趣的:(Redis,redis,数据库,缓存)