目录
背景
随着互联网+大数据时代的来临,传统的关系型数据库已经不能满足中大型网站日益增长的访问量和数据量。这个时候就需要一种能够快速存取数据的组件来缓解数据库服务I/O的压力,来解决系统性能上的瓶颈。
Redis是什么?
Redis是一个高性能的,开源的,C语言开发的,键值对存储数据的nosql数据库。
NoSQL:not only sql,泛指非关系型数据库 Redis/MongoDB/Hbase Hadoop
关系型数据库:MySQL、oracle、SqlServer
数据库的发展历史
1.在互联网+大数据时代来临之前,企业的一些内部信息管理系统,一个单个数据库实例就能满足系统的需求;(单数据库实例)
2.随着系统访问用户的增多,数据量的增大,单个数据库实例已经满足不了系统的读取需求;(缓存(memcache)+单数据库实例)
3.缓存可以缓解系统的读取压力,但是数据量的写入压力持续增大,(缓存+主从数据库+读写分离)
4.数据量再次增大,读写分离以后,主数据库的写库压力出现瓶颈、(缓存+主从数据库集群+读写分离+分库分表)
5.互联网+大数据时代来临,关系型数据库不能很好的存取一些并发性高,实时性高的,并且数据格式不固定的数据。(nosql+主从数据库集群+读写分离+分库分表)
NoSQL和SQL数据库的比较
- 适用场景不同:SQL数据库适合用于关系特别复杂的数据查询场景,nosql反之
- 事务:SQL对事务的支持非常完善,而nosql基本不支持事务
- 两者在不断的取长补短
Redis特性
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
- Redis不仅仅支持简单的key-value类型的数据,同时还提供List,set等数据类型
- Redis支持数据的备份
Redis有什么用?
Redis的主要作用:快速存取
Redis应用场景
点赞/秒杀/直播平台的在线好友列表/商品排行榜
Redis怎么用?
Redis的五大数据类型以及应用场景:
string/list/set/hash/zset
Redis的安装及启动
查看帮助命令
redis-server --help
启动服务
redis-server.exe
链接客户端
redis-cli.exe
Redis的配置文件
/etc/redis/redis.conf
当redis作为守护进程运行的时候,它会写一个 pid 到 /var/run/redis.pid 文件里面。
daemonize no
监听端口号,默认为 6379,如果你设为 0 ,redis 将不在 socket 上监听任何客户端连接。
port 6379
设置数据库的数目。
databases 16
根据给定的时间间隔和写入次数将数据保存到磁盘
下面的例子的意思是:
900 秒内如果至少有 1 个 key 的值变化,则保存
300 秒内如果至少有 10 个 key 的值变化,则保存
60 秒内如果至少有 10000 个 key 的值变化,则保存
save 900 1
save 300 10
save 60 10000
监听端口号,默认为 6379,如果你设为 0 ,redis 将不在 socket 上监听任何客户端连接。
port 6379
Redis默认只允许本地连接,不允许其他机器连接
bind 127.0.0.1
Redis数据库简单使用
DBSIZE 查看当前数据库的key数量
keys * 查看key的内容
FLUSHDB 清空当前数据库的key的数量
FLUSHALL 清空所有库的key(慎用)
exists key