微信公众号搜索【程序媛小庄】 - 没有白走的路,每一步都算数
前言
数据库有很多种,大致有两类 - 关系型数据库和非关系型数据库,关系型数据库比如有MySQL postgraphSQL等,而Redis就属于非关系型数据库,接下来就一起来看看为啥要使用Redis不是已经有MySQL了吗?Redis和MySQL又有什么不同呢?
Redis简介
Redis是一个开源的、内存中的数据结构存储系统,可以用作数据库、缓存和消息中间件,支持多种类型的数据结构,比如strings hashes lists sets sorted_sets,Redis内置了LUA脚本、LRU驱动事件、事务以及不同级别的磁盘持久化,而且可以通过Sentinel和cluster实现高可用。
既然有了MySQL那么为啥还要使用Redis呢?传统的关系型数据库比如MySQL其实不能适用所欲的场景,比如访问频率非常高的页面等,如果每次都去数据库进行访问,很容易把数据库打崩,因此引入了缓存中间件,Redis此时就是一个缓存的作用。
由于Redis是基于内存的,读写速度非常快,那么除了基于内存这一原因外,Redis还有什么其他的原因让Redis快的脱颖而出呢?其他的原因还有IO多路复用,并且Redis是单线程模式,避免了不必要的上下文切换。
上面简单的对Redis进行了介绍,下面就一起来安装一下redis吧。
Redis安装
Redis官方不建议在windows下使用Redis,因此官方网站并没有windows版本可以下载,如果需要在windows系统上安装redis,可以参考下述网站:www.redis.com.cn/redis-insta…
在Linux系统下安装Redis方法如下:
下载并安装
wget https://download.redis.io/releases/redis-6.2.5.tar.gz
tar xzf redis-6.2.5.tar.gz
cd redis-6.2.5
make
执行完make命令后,redis-6.2.5目录下会出现编译后的redis服务程序redis-server还有用于测试的客户端程序redis-cli,两个程序位于安装目录src目录下。
启动redis服务
首先是最简单的启动方式 - 使用redis的默认配置。
cd src
./redis_server
当然也可以通过启动参数告诉redis使用指定配置文件,redis.conf是一个默认的配置文件,也可以根据需要使用自己的配置文件:
cd src
./redis_server ../redis.conf
启动redis服务进程后,就可以使用测试客户端程序redis-cli和redis-server进行交互了,在没有把redis-server配置为后台启动时,使用redis-cli前一定要启动redis-server哦~,比如:
cd src
./redis-server # 启动redis服务
./redis-cli # 启动redis客户端
redis> set foo bar
OK
redis> get foo
"bar"
每次启动客户端都要启动服务端很明显非常不方便,因此可以将redis-server配置成为一个后台服务,配置方式就是修改配置文件中的daemonize no 改成 daemonize yes,同样可以设置客户端的访问密码,就是通过配置文件中的requirepass,常用配置文件redis.conf:
# 默认端口6379
port 6379
# 绑定ip,如果是内网可以直接绑定 127.0.0.1, 或者忽略, 0.0.0.0是外网
bind 0.0.0.0
# 密码 abcd123
requirepass abcd123
Redis VS MySQL
redis:基于内存,读写速度非常快,属于非关系型数据库,通常用作缓存中间件。
MySQL:硬盘数据库,数据持久化,属于关系型数据库,通常用来存储永久数据,并且数据之间有关联关系的数据。
Redis典型使用场景
缓存系统:使用最广泛的就是缓存
计数器:网站访问量,转发量,评论数(文章转发,商品销量,单线程模型,不会出现并发问题)
消息队列:发布订阅,阻塞队列实现(简单的分布式,blpop:阻塞队列,生产者消费者)
排行榜:有序集合(阅读排行,点赞排行,推荐(销量高的,推荐))
社交网络:很多特效跟社交网络匹配,粉丝数,关注数
实时系统:垃圾邮件处理系统,布隆过滤器
结语
文章首发于微信公众号程序媛小庄,同步于掘金。
码字不易,转载请说明出处,走过路过的小伙伴们伸出可爱的小指头点个赞再走吧(╹▽╹)