Redis之必备基础知识点,文读百变其意自现(一)

我是方圆,要励志写出好博客的新手博主
希望这些知识能让我们共同进步

1. Redis基础知识准备

1.1 嘛是Redis?

Redis(Remote Dictionary Server),远程字典服务,由 C语言 编写、支持网络、基于内存亦可持久化的日志型、Key-Value数据库(NoSQL)

这里的基于内存需要大家注意一下,下文中说到为什么Redis是单线程的用得到。

1.2 NoSQL(作为了解)

NoSQL:非关系型数据库(Not only SQL),它们并不保证ACID原则。

  • 分类
  1. 键值对存储数据库(我们的Redis就是这种)
  2. 列存储数据库
  3. 文档型数据库(我们熟悉的MongoDb)
  4. 图形数据库
  • 特点
  1. 数据之间没有关系,易于扩展
  2. 在大数据量下,展示出较高的性能
  3. 不必提前设计数据库,随去随用,灵活的数据模型

1.3 那Redis可以用来做什么?

可以用于数据库缓存消息中间件儿等。

  • RDB AOF持久化机制(扩展)
  1. RDB持久化是在指定时间间隔内将内存中的数据集快照写入磁盘,它也是Redis默认的持久化方式。数据恢复速度比AOF快,但是数据的一致性和完整性较差。
  2. AOF需要手动开启,默认是每秒将写操作到AOF文件中,持久化的数据完整性和一致性比RDB要好,但是效率差。

(预想继续了解RDB和AOF,可看下文)
Redis之RDB和AOF持久化机制详解

1.4 Redis的安装和启动服务

1.4.1 安装
  • 具体安装过程不再赘述,不过有一点要提的是我在CentOS7系统的服务器上安装6.0.1版本一直报错,具体错误如下,尝试了网上的一些方法都没有解决,换成5.0.8版本就能直接安装成功,如果有人会解决这个问题,欢迎评论
make[1]: *** [server.o] Error 1
make[1]: Leaving directory `/opt/redis-6.0.1/src'
make: *** [all] Error 2
  • Redis的默认安装路径是 /usr/local/bin
  • 这里推荐大家在bin目录下创建myconf目录,并将配置文件redis.conf拷贝到myconf目录下
  • Redis默认不是后台启动的,需要修改配置文件,如下
将daemonize no
修改为daemonize yes
1.4.2 启动服务
redis-server myconf/redis.conf

设置端口号
redis-cli -p 6379
可选步骤:检查进程
ps -ef|grep redis

关闭服务
shutdown
127.0.0.1:6379> shutdown
not connected> exit

1.5 基本命令与小知识

1.5.1 基本命令
  • Select
select 3 表示切换为3号数据库
  • DBSIZE
DBSIZE 查看当前数据库大小
  • keys *
keys * 查看所有的key
  • flushdb
flushdb 清空当前数据库
  • flushall
清空所有数据库
1.5.2 必须要知道的小知识(重要)
  • 默认情况下是16个数据库(在配置文件redis.conf中可查看),初始使用0号数据库
  • Redis为什么是单线程的?
  1. 首先我们要明白,Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈取决于内存大小或网络带宽,在单线程的方案下能实现Redis,就不采用多线程。
  2. 除了以上一点,我们还要清楚,Redis为什么单线程会这么快?
    首先我们一定要摆脱两个误区
    误区一:高性能的服务器都是多线程实现的(其实不然)
    误区二:多线程一定比单线程的效率高(其实更不然)
    下面就让我来解释解释
    Redis是基于内存操作的,单线程就是效率最高的,因为多线程的本质是经过CPU模拟出来多个线程,这样就会出现上下文切换耗时的情况,对于一个内存来说,单个线程就是效率最高的。redis 用 单个CPU 绑定一块内存的数据,然后针对这块内存的数据进行多次读写的时候,都是在一个CPU上完成的,所以它是单线程处理这个事儿,效率最高。

在这里插入图片描述

参考

Redis百度百科

为什么 Redis 是单线程的?

狂神说Java Redis

该系列其他文章

Redis之数据类型,好记性不如烂笔头(二)
Redis之事务乐观锁和Jedis,谁说的Redis不能实现乐观锁的?(三)
Redis之redis.conf解析,了解了这些配置信息,才能说了解Redis(四)
Redis之主从复制和哨兵模式,差不多儿啦(五)
Redis之RDB和AOF持久化机制详解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

方圆想当图灵

嘿嘿,小赏就行,不赏俺也不争你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值