一.redis的概念
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的利用ANSI C语言编写、支持网络、可基于内存亦可持久化的日记型、Key-Value数据库,并提供多种语言的API。在redis官网中对redis的描述是如许的(Redis is an open source (BSD licensed), in-memory data structure store used as a database, cache, message broker, and streaming engine. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions, and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.)我们可以提取其中的关键点:redis是基于opensource,服从BSD协议,利用c语言编写的key-value形式存储数据,存储在内存中的数据库,并且redis支持持久化的数据储存
二.redis的作用和上风
我们知道当前市场中主流的数据库是MySQL,我们思考以下几个题目:redis 和MySQL有怎样的关系?MySQL在当前市场的局限在哪?redis相对于MySQL具有怎样的上风?
我们对比一下MySQL和redis:
在高并发的市场环境下,MySQL对数据的处理渐渐进入瓶颈期,它无法在及时处理巨量的数据,在某些应用场景无法满足用户的需求,redis相对于MySQL,首先从硬件方面举行对比:MySQ的数据存储在硬盘中,而redis中的数据存储在内存中,因此,redis对于数据的读取具有更快的速率,从存储结构上来看,redis利用key-value的形式存储数据,查询数据具有更高的效率;从数据库范例来看,与MySQL的关系型数据库(RDBMS)差异,redis是NOSQL范例的数据库。
通过两者的对比,我们对redis的作用和上风举行概括性描述:
redis作用
1.redis提供分布式缓存技术,是挡在mysql之前的带刀保护(减少MySQL处理数据的压力)(当请求发送给数据库时,在请求到达MySQL之前会先到达redis,在redis中查询数据是否存在,假如在redis中存在就直接返回,不通过MySQL,redis中不存在则去MySQL中查询,在MySQL中查询乐成后返回数据,同时将数据也加载到redis中,下一次的请求直接在redis中获取数据)
2.redis支持内存存储和持久化(RDB+AOF),redis支持异步将内部中的数据写到硬盘上,同时不影响继续服务(当redis发生断电等异常环境,从硬盘中加载数据,不再通过MySQL)。
3.提供高可用的架构搭配,如单机,主从,哨兵,集群等等
4.为缓存穿透、击穿和雪崩提供办理方案
5.提供分布式锁
6.队列
Reids提供list和set操纵,这使得Redis能作为一个很好的消息队列平台来利用。
我们常通过Reids的队列功能做购买限制。好比到节沐日或者推广期间,举行一些运动,对用户购买行为举行限制,限制本日只能购买频频商品或者一段时间内只能购买一次。也比较得当实用。
7.排行榜+点赞
在互联网应用中,有各种各样的排行榜,如电商网站的月度销量排行榜、社交APP的礼品排行榜、小程序的投票排行榜等等。Redis提供的zset数据范例可以大概快速实现这些复杂的排行榜。好比小说网站对小说举行排名,根据排名,将排名靠前的小说推荐给用户
redis的上风:
- 性能极高 -Redis能读的速率是110000次/秒,写的速率是81000次/秒
- Redis数据范例丰富,不但仅支持简单的key-value范例的数据,同时还提供list,zset,set,hash等数据结构的存储
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载举行利用
- Redis支持数据的备份,即master-slave模式的数据备份
- 天生dump.rpb文件(可以在设置文件中改) 默认天生在redis.conf同级目次
三.redis7新特性
四.redis的利用
我们在此地方说的redis的利用是Linux环境下的利用
4.1redis的安装
1.redis的安装需要在64位的centos运行环境,因此利用以下指令,测试我们centos的环境
getconf LONG_BIT 结果返回32就代表32位,返回64就代表64位
2.redis需要在安装依赖于gcc的编译环境,我们利用以下指令举行测试:
gcc -v 查看gcc版本
yum -y install gcc-c++ 安装c++库环境
.3.将此前下载的redis-7.0.11.tar.gz(当然你下载的可能是其他版本)直接拖入到Linux中的/opt文件夹中(一般放入/opt文件夹,该文件夹是自界说文件夹)是,之后解压文件夹
tar -zxvf redis-7.0.11.tar.gz /opt目次下解压
在解压文件夹之后会天生如许一个redis-7.0.11如许一个文件目次:
在解压之后进入文件目次内:
cd redis-7.0.11
安装redis
make && make install
进入默认的安装目次内并且查看与redis相关的文件
cd /usr/local/bin #进入安装的默认文件夹
ll #查看当前目次下的文件及目次
能观察到以下与redis相关的文件结果:
4.重新切回到redis -7.0.11这个文件目次下,创建myredis 的文件目次,并将redis-7.0.11的文件目次下的redis.conf这个文件复制到myredis的文件目次下(因为我们要对设置文件举行修改,以是最好要对原来的设置文件举行保存)
mkdir /myredis #在redis-7.0.11目次下创建myredis的文件目次
cp redis.conf /myredis/redis7.conf #将默认的设置文件复制已往
5.对复制的设置文件举行修改:
在底行模式下利用/+关键字的方式举行对设置文件的特定内容举行搜刮,锁定到特定内容之后将该内容举行修改:
示例:
vim /myredis/redis7.conf
// linux在vim中搜刮词 esc + /搜刮词 + enter
6.修改redis.conf设置文件,改完后确保生效,一定要记得重启redis服务器
1.默认daemonize no 改为 daemonize yes
2.默认protected-mode yes 改为 protected-mode no
3.默认bind 127.0.0.1 改为 直接表明掉(默认bind 127.0.0.1只能本机访问)或改成本机IP地点,否则影响远程IP连接
4.添加redis暗码 改为 requirepass 你自己设置的暗码
7.启动redis服务器和客户端
redis-server /root/opt/redis-7.0.11/myredis/redis7.conf #启动服务
为什么要从根目次开始利用呢?因为假如我们从当前目次开始利用可能会报找不到文件或者目次的错误(亲测)
ps -ef | grep redis | grep -v grep #测试是否启动乐成
测试结果:
8.连接服务
redis-cli -a 设置的暗码 -p 6379
ping 测试 得到 pong
实行第一行的 redis 有一个warning告诫 下面指令可以不展示告诫
redis-cli -a 设置的暗码 -p 6379 2>/dev/null
4.2redis的利用(永远的helloworld)
输入以下的代码:
- set k1 helloWorld
- OK
- get k1
- "helloWorld"
复制代码 4.3redis的关闭
关闭服务
Linux redis 里: shutdown 直接关闭
单实例远程关闭 : redis-cli -a 暗码 shutdown
多实例远程关闭,指定端口号关闭: redis-cli -p 6379 shutdown
4.4redis的卸载
卸载redis
ls -l /usr/local/bin/redis-* 查看以是redis文件
rm -rf /usr/local/bin/redis-* 删除全部文件
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |