不会这门技术也想年薪百万?Redis内存数据库知识精讲

转载 2017年12月13日 00:00:00

0?wx_fmt=gif&wxfrom=5&wx_lazy=1

P

H

P


内·存·数·据·库




 1 

Redis产生背景

随着互联网+大数据时代的来临,传统的关系型数据库已经不能满足中大型网站日益增长的访问量和数据量,这个时候就需要一种能够快速存取数据的组件来缓解数据库服务I/O压力,来解决系统性能上的瓶颈。


 2 

Redis是什么?

Redis是开源的,高性能,C语言开发的,键值对(k-v)存储数据的NoSQL数据库。


Redis是分布式的内存数据库,读取速度每秒能达到10W左右。而且用redis-benchmark可以测试机器性能。执行redis-benchmark也可以看出Redis的读取性能。Redis默认有16个数据库,用select可以切换Redis的数据库,下角标是从0开始的。在redis.conf文件中也可以找到databases 16。Redis默认端口6379。


2.1 NoSQL数据库是什么?

NoSQL:Not noly SQL,泛指非关系型数据库,例如MongoDB、Redis


 3 

数据库应用的发展历史

1.在互联网大数据时代来临之前,企业的一些内部信息管理系统,一个单一数据库实例可以应付系统的需求

单数据库实例

2.随着系统访问量用户的增多,数据量的增大,单个数据库实例已经瞒住不了系统读取数据的需求

缓存(memcache)+数据库实例

3.缓存可以缓解数据库的读取压力,但是数据量的写入压力持续增大,可以采取数据库主从进行读写分离

缓存+主从数据库+读写分离

4.数据量再次增大,读写分离以后,主数据库的写库压力出现瓶颈

缓存+主从数据库集群+读写分离+分库分表

5.互联网+大数据时代来临,关系型数据库不能很好的存取一些并发性大,实时性高而且格式不固定的数据

NoSQL+主从数据库集群+读写分离+分库分表


 4 

Redis有什么用?

redis的主要作用:快速存取


Redis的应用场景?

单点登录/直播平台在线好友列表/抢购/秒杀/商品的排行/点赞/数据过期


Redis怎么用?

官网地址:redis,io

命令地址:http://doc.redisfans.com/

最新版本:3.2.9

应用版本:3.0.4



 5 

Redis的五大数据类型以及应用场景


*String类型

k-v格式中V的数据类型是String,一个redis字符串value最多可以存512M

应用场景:秒杀商品/点赞

设值 set key value

取值 get key

删除 del key


incr key 递增加1

?wx_fmt=png

decr key 递减减1

?wx_fmt=png

incrby key 2 递增加 2

?wx_fmt=png

decrby key 2 递减减2

?wx_fmt=png


*Hash类型

k-v格式中V的数据类型是hash。

应用场景:电商网站中的商品详细信息

设值:hset mobile id 1 设值mobile id 为1

取值:hget mobile id

?wx_fmt=png

批量设值:hmset mobile_huawei id 1 name huaweip10 price 5600

批量取值:hgetall mobile_huawei

删除 del key


*List类型


k-v格式中V的数据类型是List。

应用场景:获取分页/商品评论表

从左边插入记录:lpush comment:1 1 2 3

从右边插入记录:rpush comment:1 4 5 6

插入后comment:1 的数据为:3 2 1 4 5 6

?wx_fmt=png

从左边弹出记录:lpop comment:1 弹出3

从右边弹出记录:rpop comment:1 弹出6

获取分页:lrangge comment:1 start end

rpush list01 1 1 2 2 3 3 4 4 插入数据

删除:lrem list01 2 3 删除2个3


*Set类型

k-v格式中V的数据类型是set和list不同是:list是有序的,set是无序的,且具有唯一性

应用场景:微信朋友圈查看权限/独立IP投票限制

增加:sadd set01 1 1 2 2 3 3

去掉重复数据添加1 2 3,因为set具有唯一性。插入重复数据直接会过滤掉

添加朋友圈juran sadd friends:juran a b c

添加朋友圈xxxx sadd friends:xx b c

查看集合的交集:sinter friends:juran friends:xx

?wx_fmt=png


*Zset类型

k-v格式中v的数据类型是zset,有序的

应用场景:商品的销售排行

增加 zadd mobile:sales 100 huawei 99 ipx 98 vivo 97 oppo

从小到大获取商品:zrange moblie:sales 0 -1

?wx_fmt=png

从大到小获取商品:zrevrange mobile:sales 0 -1

?wx_fmt=png

如果想带上数量可以加上参数,withscores

?wx_fmt=png


0?wx_fmt=png


年薪百万的年轻人都是怎样生活的?——脸书程序员的故事

本文转自微信公众号:财经记者圈   一些年薪百万的年轻人,他们拿着高薪,却依然选择为了工作到深夜,并且他们的状态很不一样,非常积极,苦逼的年轻人和年薪百万的年轻人,区别到底在哪里?   1、税季,...
  • u012391923
  • u012391923
  • 2016年07月09日 14:00
  • 21806

5年IT从业的感悟和未来百万年薪畅想

转眼从研究生毕业已经工作满5年了,而从走入公司从事程序员工作已经有6年多,对IT行业特别是软件行业有了较深的体会和一定的经验。现在IT给普通人的第一感觉都是比较累,吃青春饭,其实大多数人当听到收入时有...
  • u010164190
  • u010164190
  • 2016年06月28日 16:09
  • 852

10年资深猎头揭露:他们为什么能年薪百万

360总裁周鸿祎微博推荐语:网络上有一篇文章很流行,《10年资深猎头:他们为什么年薪百万?》作者不详,但我觉得是牛人。用薪酬判断一个人价值,俗点,但却是一个通世标准。价值高的人,眼光和能力必有高人之处...
  • jiq408694711
  • jiq408694711
  • 2016年04月17日 14:16
  • 3831

你与年薪百万程序员之间只差这4个习惯!

程序员(误:猿),在不同的领域和场合,他们有很多不同的称呼,软件工程师(Software Engineer),程序员(Programmer),编码人(Coder),开发人员(Developer)。这群...
  • andylauren
  • andylauren
  • 2016年11月20日 20:59
  • 721

Redis简介以及和其他缓存数据库的区别

相关文章:Centos7.0 安装Redis 3.2.1详细过程和使用常见问题Redis简介Redis 是一个开源的内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据...
  • u010870518
  • u010870518
  • 2017年03月07日 14:27
  • 6812

《Java核心技术精讲》读书笔记

1、关于直接赋值操作中字符串都相同的原因 在String类采用了共享设计模式,在每个运行的JVM底层存在一个字符串的对象池,如果采用直接赋值,会将字符串的内存放入池中,以供其他使用直接赋值的Stri...
  • jyxmust
  • jyxmust
  • 2017年05月23日 00:07
  • 984

读《Java虚拟机精讲》之-------JVM内存分配的总结

一 , JVM的运行时内存结构 JVM内部定义了多个程序在运行时需要使用到的内存区, 二, 线程共享内存区 如上面的图所示,JVM中内存区可以根据访问权限不同定以为线程共享和线程私有两大类。所谓...
  • qq_34178598
  • qq_34178598
  • 2017年12月11日 21:21
  • 114

深入Java核心 Java内存分配原理精讲

栈、堆、常量池虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同。本文将深入Java核心,详细讲解Java内存分配方面的知识。     Java内存分配与管理是Java的核心技术之一,之...
  • u011225629
  • u011225629
  • 2015年07月13日 06:58
  • 1676

内存数据库-Redis介绍

Redis的全称是:Remote Dictionary Server   二、Redis的基本介绍:       redis 是一个高性能的key-value数据库。 re...
  • StillCity
  • StillCity
  • 2015年06月03日 15:08
  • 7311

百万年薪的人才泡沫与人工智能的虚假繁荣

我们是不是正在像15年前迎来互联网泡沫那样,正在迎接人工智能的更大泡沫? 作者:逍遥小妖 应采访者要求,戴维、郑明、麦可、胡进、老邢均为化名。 五月天,戴维穿着帽衫,瘦瘦高高,里面套着短...
  • u4110122855
  • u4110122855
  • 2017年07月21日 08:42
  • 275
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:不会这门技术也想年薪百万?Redis内存数据库知识精讲
举报原因:
原因补充:

(最多只允许输入30个字)