专栏名称: python
隔天更新python文章,我希望用我的努力换来劳动的成果帮助更多的人掌握一门技术,因此我要更加努力。
目录
相关文章推荐
Python爱好者社区  ·  “给我滚出贵大!”郑强出任贵州大学校长,打算 ... ·  2 天前  
Python爱好者社区  ·  节后第一个私活,赚了3w ·  昨天  
Python爱好者社区  ·  DeepSeek 最新中国大学排名 ·  16 小时前  
Python开发者  ·  “李飞飞团队50 美元炼出 ... ·  3 天前  
Python爱好者社区  ·  史上最强!PINN杀疯了 ·  3 天前  
51好读  ›  专栏  ›  python

超强、超详细Redis入门教程

python  · 公众号  · Python  · 2018-06-04 20:33

正文

背景~~


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

什么是Redis~~



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

NoSql: Not Only Sql 泛指非关系型数据库  Redis / MongoDB/Hbase

关系型数据库 : Oracle Mysql SqlServer


数据库应用的发展历史


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

单数据库实例

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

缓存(ehCache/MemCached)+数据库实例

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

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

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

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

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

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


Redis有什么用~~


Redis的主要作用: 快速存取

以电商平台为例,Redis在系统架构中的一个位置


Redis的应用场景:

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

Redis怎么用~~


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

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

最新版本 : 3.2.9

应用版本: 3.0.4


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

List

k-v格式中 v的数据类型是List,其实类似java里面的LinkedList

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

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

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

3  2  1  4  5  6

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

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

获取分页: lrange comment:1 start end

1.lrem key 删N个value

rpush list03 1 1 1 2 2 2 3 3 3 4 4 4 5 6 7

lrem list03 2 3   代表删掉2个3

lrange list03 0 -1

应用场景: 商品的评论表


String


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

设值  set  key  value /mset k1 v1 mset k2 v2

incr k2 递增加1

decr k2 递减减1

incrby  k2 3  k2加3

取值  get key

删值  del key

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


Hash

k-v格式中 v的数据类型是hash,其实就是java里面的Map

设值: hset mobile_huawei id 1  批量:hmset mobile_huawei id 1 name huaweip9 price 2999

取值: hget mobile_huawei id    批量:hgetall mobile_huawei

删值: del key

hexists customer id 如果存在返回1 不存在返回0

hkeys/hvals

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


set

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

sadd set01 1 1 2 2 3 3  会去掉重复添加

增  sadd friends:juran tds jungle aurocal yulouchun

删  srem friends:keven tds

查看 smember friends:juran

两个集合的交集 sinter friends:juran friends:tds

随机出栈 spop juran

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


Zset(sorted set)

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

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

删除 zrem mobile:sales oppo

ZRANGEBYSCORE  mobile:sales 98 (100  不包含100

从小到大获取商品 :zrange  mobile:sales 0  10 从小到大







请到「今天看啥」查看全文