Redis学习之旅--初识Redis


**本小白是根据B站狂神的视频学习的,如有问题可以留言评论,或者去B站看视频理解!!!**最后在此感谢狂神大大!

概述

Redis是什么?

Redis(Remote Dictionary Server)远程字典服务!是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的API。是免费和开源的!是当下最热门的NoSQL技术之一!也被人们称之为结构化数据库!Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并在此基础上实现master-slave(主从)同步。

Redis能干嘛?

  • 内存存储、持久化(内存中是断电即失、所以持久化很重要(人rdb、aof))
  • 效率高、可用于告诉缓存
  • 发布订阅系统(消息队列)
  • 地图信息分析
  • 计时器、计数器(浏览量)

Redis的特点

  • 多样的数据类型
  • 持久化
  • 集群
  • 事务

拓展

  • Redis官网:https://redis.io/
  • Redis中文官网:http://www.redis.cn/

注意:Wdinow在Github上下载(停更很久了!)
Redis推荐都是在Linux服务器上搭建的,基于Linux学习!

下载

Windows下载

1.网盘下载链接https://pan.baidu.com/s/1VHiNbmrupYU2yN9D_nybYQ
2.解压到自己的电脑环境上!Redis非常小,只有5M
在这里插入图片描述
3.开启Redis,双击运行服务即可
在这里插入图片描述
4,打开客户端进行链接测试
在这里插入图片描述

Linux安装

  • 下载安装包!网盘链接https://pan.baidu.com/s/1B7VQauxUXbuspqXpQTMcXQ

  • 解压Redis的安装包!程序的/opt目录下

在这里插入图片描述

  • 进入解压后的文件,可以看到我们Redis的配置文件
    在这里插入图片描述
  • 基本环境安装
yum install gcc-c++
make
make install
  • 默认安装路径 /usr/local/bin

在这里插入图片描述

  • 拷贝默认配置文件

在这里插入图片描述

  • Redis默认不是后台启动的,需要修改配置文件

在这里插入图片描述

  • 启动Redis服务

在这里插入图片描述

  • 使用redis-cli测试连接

在这里插入图片描述

  • 查看Redis进程是否开启ps -ef|grep redis
    在这里插入图片描述
  • 关闭Redis服务
    在这里插入图片描述
  • 查看进程是否存在
    在这里插入图片描述

redis-benchmark(测性能的)

测试:100个并发连接,100000个请求
redis-benchmark -h localhost -p 6379 -c 100 -n 100000

在这里插入图片描述
查看分析
在这里插入图片描述
在这里插入图片描述

Redis内存淘汰策略

Redis是不断的删除一些过期的数据,但是肯定也有许多没有设置过期时间的数据也会越来越多,那么Redis内存不够用的时候是怎么处理的呢?答案就是淘汰策略(当Redis内存超过最大允许的内存之后,Redis就会触发内存淘汰策略,删除一些不常用的数据,以保证Redis服务器的正常运行)

  • 1、noeviction:添加数据时,如果redis判断该操作会导致占用内存大小超过内存限制,就返回error,然后啥也不干
  • 2、allkeys-lru:添加数据时,如果redis判断该操作会导致占用内存大小超过内存限制,就会扫描所有的key,淘汰一些最近未使用的key
  • 3、volatile-lru:添加数据时,如果redis判断该操作会导致占用内存大小超过内存限制,扫描那些设置里过期时间的key,淘汰一些最近未使用的key
  • 4、allkeys-random:添加数据时,如果redis判断该操作会导致占用内存大小超过内存限制,就会扫描所有的key,随机淘汰一些key
  • 5、volatile-random:添加数据时,如果redis判断该操作会导致占用内存大小超过内存限制,扫描那些设置里过期时间的key,随机淘汰一些key
  • 6、volatile-ttl:添加数据时,如果redis判断该操作会导致占用内存大小超过内存限制,扫描那些设置里过期时间的key,淘汰一些即将过期的key
  • 7、volatile-lfu:添加数据时,如果redis判断该操作会导致占用内存大小超过内存限制,就会淘汰一些设置了过期时间的,并且最近最少使用的key
  • 8、allkeys-lfu:添加数据时,如果redis判断该操作会导致占用内存大小超过内存限制,就会扫描所有的key,淘汰一些最近最少使用的key

Redis基础知识

相关概念

Redis有16个数据库,默认使用的的是第0个,可以用select命令进行切换
在这里插入图片描述
不同的数据库存储不同的值,之间互不干涉
在这里插入图片描述

  • keys * 查看所有的关键字
  • flushdb清除当前数据库
  • flushall 清除全部数据库内容

在这里插入图片描述

Redis是单线程的!

我们需要明白Redis是很快的,官方表示,Redis是基于内存操作,CPU不是Redis的性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽有关,既然可以使用单线程,就用单线程来实现了!
Redis是用c语言写的,官方提供的数据为1000000+的QPS,完全不比同样使用key-value的Memecache差!

Redis为什么单线程还那么快?

误区1:高性能服务器一定是多线程吗?
误区2:多线程(CPU会进行上下文切换)一定比单线程效率高?

核心:效率:CPU > 内存 > 硬盘 Redis是将所有的数据全部放在内存中,所有说使用单线程去操作效率就是最高的(多线程CPU上下文会切换,会消耗时间)对内存系统来说,如果没有上下文切换效率就是最高的!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值