redis 大开大合

redis内存数据库

一.背景

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

二.Redis是什么?

Redis是一个开源的,高性能的,C语言开发的,键值对(K-V)存储数据的NoSQL数据库

NoSQL数据库:Not Only Sql 泛指非关系型数据库

关系型数据库:MYSQL SQLServer Oracle

数据库应用的发展历史

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

单数据库实例

2.随着系统访问量用户的增多,数据量的增大,单个数据库实例已经满足系统的一个需求了

缓存技术(memcache)+数据库实例

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

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

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

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

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

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

三.Redis有什么用

Redis的主要作用:快速存取

四.Redis应用场景

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

Redis怎么用?

官网地址:https://redis.io

最新版本:3.2.9

应用版本:3.0.4

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

String/Hash/List/Set/Zset

* String

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

设值 set key value

取值 get key

递减:decr key

递增:incr key

incrby key num 自定义加多少

mset k2 v2 k3 v3

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

*Hash

K-V格式中的V数据类型是Hash,

设值:hset moblie_huawei id 1

批量设值:hmset moblie_huawei id 1 name huaweip10 price 5660

取值:hget moblie_huawei id

批量取值:hgetall moblie_huawei

验证是否存在

hexists moblie_huawei id

如果存在返回1,如果不存在返回0

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

*List

K-V格式中的V数据类型是List

把这个有序看成一根竹子,可以从两头插入数据

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

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

3 2 1 4 5 6

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

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

实际应用场景:获取分页 lrange comment:1 start end 下角标从0开始

*Set

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

设值 sadd set01 1 1 2 2 3 3 4 4 会去掉重复数据

增 sadd friends:juran a b c d

查看 smenber friends:juran

随机出栈 spop friends:juran

交集 sinter

删除 srem friends:bb gk

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

*Zset

K-V格式中的V数据类型是Zset,是有序的

增加 zadd moblie:sales 100 huawei 99 iphone 98 vivo 97 oppo

删除 zrem moblie:sales iphone

zrange moblie:sales 0 -1 默认是正序 从小到大

zrevrange moblie:sales 0 -1 从大到小

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

此份资料只供PHP开发者参考,不可用于商业贩卖!!

这些笔记,大家乍看之下不会发现玄机,其实仔细思考之后发现问题并不简单!

由于篇幅原因,先就发这一篇给大家欣赏一下,想要完整的可以加小编的Q3272849610,私聊我,我会给大家发的!

相关推荐