随着互联网 + 大数据时代的来临,传统的关系型数据库已经不能满足中大型网站日益增长的访问量和数据量,这个时候就需要一种能够快速存取数据的组件来缓解数据库服务 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
decr key 递减减 1
incrby key 2 递增加 2
decrby key 2 递减减 2
*Hash 类型k-v 格式中 V 的数据类型是 hash。
应用场景:电商网站中的商品详细信息
设值:hset mobile id 1 设值 mobile id 为 1
取值:hget mobile id
批量设值: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
从左边弹出记录: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
*Zset 类型k-v 格式中 v 的数据类型是 zset,有序的
应用场景:商品的销售排行
增加 zadd mobile:sales 100 huawei 99 ipx 98 vivo 97 oppo
从小到大获取商品:zrange moblie:sales 0 -1
从大到小获取商品:zrevrange mobile:sales 0 -1
如果想带上数量可以加上参数,withscores
来源: http://blog.csdn.net/tTU1EvLDeLFq5btqiK/article/details/78800375