数据结构论坛

注册

 

发新话题 回复该主题

高能预警看完这篇别再说你不懂单机red [复制链接]

1#
中科白癜风暖心公益活动 http://baijiahao.baidu.com/s?id=1681593234657343333&wfr=spider&for=pc

本文来自牛鹭学院学员:廖清蓉

很多刚刚进入软件测试行业的人对单机版的redis认识还不全面,别人问你redis是啥吱唔半天也说不出个所以然,今天牛鹭学院就系统性的为大家梳理一下吧~

目录

1、Redis介绍

Redis与MySQL/Oracle的区别2、Redis数据结构

单机redis搭建redis基本数据类型用法3、Redis性能测试

4、Redis架构模式

Redis介绍

与MySQL不同的是,redis是一种非关系型数据库。Mysql存储在磁盘里,而Redis存储在内存里。

Redis既可以用来做持久存储,也可以做缓存,而目前大多数公司的存储都是Mysql+Redis,Mysql作为主存储,Redis作为辅助存储被用作缓存,加快访问读取的速度,提高性能。

Redis数据库有16个,分别是0-15,每个数据库用数字命名,而且每个数据库的连接密码都一样,redis只允许一个密码。数据库之间不能共享,并且基于单机才有,如果是集群,就没有数据库的概念了。

redis之所以分这么多个数据库,也是为了区分业务,不同的业务存放在不同的库,但是一个redis,一般是给一个项目用,项目内的不同业务,单独用一个库,这样不会相互有数据交叉。现在很多微服务项目,一个项目里有多个微服务,redis统一由团队管理,每个服务连接自己的库就可以了。

Redis与MySQL/Oracle的区别

存储介质:

Redis存储在内存,但是可以将数据持久化到硬盘。MySQL/Oracle将数据持久化的存储到硬盘;

数据库类型:Redis属于非关系型数据库;MySQL/Oracle关系型数据库

存取效率:Redis直接在内存中存取数据效率高;MySQL/Oracle每次请求访问数据库时,都存在着I/O操作,如果反复频繁的访问数据库。

会在反复链接数据库上花费大量时间,从而导致运行效率过慢;反复的访问数据库也会导致数据库的负载过高Redis数据结构

测试案例

测试案例分析:

内存占用过大问题:

经过计算1byte=8bit,每个客户进行一次查询存储的key占用的内存w/8//=0.47M,粗略估计客户进行查询,存储key占用的内存=*0.47(将近1G),如果查询频繁,则必然会出现内存溢出的风险。

优化方法:

针对客户的操作频率,一般不会不停地进行数据查询操作,所以可以将客户查询存储的key设置过期时间,这样可以减小内存压力

单机redis搭建

redis安装三部曲:

准备好redis的安装包,用xftp传输至Linux下root目录下,解压并进入redis-5.0.7目录下

安装C语言编译器yuminstallgcc

2.执行命令makeMALLOC=libc,此时会生成一个redis的源文件

3.输入makeinstall,当有如下提示,表示你是安装成功的

此时我们查看一下redis的配置文件ls

grepconf并进入到配置文件里设置连接viredis.conf

Esc+/输入port查看默认的端口号,输入,此时会跳转到的关键字部分,我们在最后一个部分加入如下一行,用于绑定自己的IP地址,当然也可以走默认的,不做修改

保存退出,去启动它src/redis-serverredis.conf

如果能够看到如下的图形,表示构建成功

在root目录下执行ps-ef

grepredis查看redis是否已在运行;

然后进入到redis目录下,输入命令src/redis-cli-h..8.3-p进入redis数据库操作

redis基本数据类型用法

数据库之间的切换

Redis支持五种数据类型:

1.字符串(String):增删改查

setkeyvaluedelkeysetkeynewvaluegetkeymsetkey1value1key2value2--批量增加

2.哈希(Hash)

hsetkeyfield_1value1–增hmsetkeyfield_1value1filed_2value2--批量增hdelkeyfiled--删hsetkeyfieldnewValue–改hgetkeyfield--查某一field值hvalsfiled–查key对应的field-valueshlenkey--计算field个数hkeys--获取所有field

3.列表(list)

rpushkeyvalue[value…]--右插lpushkeyvalue[value…]–左插linsertkeyBEFORE

AFTERpivotvaluelrangekeystartstoplindexkeyindexllenkeylpopkey–左弹rpopkey–右弹lsetkeyindexvalue--修改下标index的元素值

4.集合(sets)

–集合内元素操作

saddkeyelement[element…]--增sremkeyelement[element…]--删scardkey--计算元素个数sismemberkeyelement--判断元素是否在集合中spopkeysmemberskey--获取所有元素–集合间元素操作

sinterkey[key…]--交集sunionkey[key…]–并集sdiffkey[key…]--差集–将结果保存

sinterstoredestinationkey[key…]suionstoredestinationkey[key…]sdiffstoredestinationkey[key…]

5.有序集合(sortedsets)

Redis性能测试

Redis自带了一个叫redis-benchmark工具来模拟N个客户端同时发出M个请求

Redis架构模式

单机版

优点:简单

缺点:内存容量有限;处理能力有限;无法高可用

集群版

优点:

主从复制:Redis的复制(replication)功能允许用户根据一个Redis服务器来创建任意多个该服务器的复制品,其中被复制的服务器为主服务器(master),而通过复制创建出来的服务器复制品则为从服务器(slave)。只要主从服务器之间的网络连接正常,主从服务器两者会具有相同的数据,主服务器就会一直将发生在自己身上的数据更新同步给从服务器,从而一直保证主从服务器的数据相同。

————————————————

分享 转发
TOP
发新话题 回复该主题