Redis学习笔记

                <svg xmlns="http://www.w3.org/2000/svg" style="display: none">
                    <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0)"></path>
                </svg>
                <p></p>

一、Nosql 的概念

  1. 什么是 Nosql(not only SQL)
    不仅仅有 SQL , 泛指非关系型数据库。Nosql 产品天生为大数据而生。
  2. Nosql 产品的特点
    1. 基于内存存储;
    2. 不是基于二维表存储;

      如: redis 基于 key-value 存储
      MongDB 基于文档存储
      Hbase 基于列存储

    3. 没有复杂的表连接查询操作。
    4. 弱化事务, 或者根本不支持事务。
    5. 检索数据的效率高;
    6. 天生对集群环境的支持良好。
  3. 缺陷:
    由于 Nosql 产品对于事务基本上不算支持, 所以 Nosql 产品无法保证数据的强一致性。

    对于数据的一致性要求较高的业务场景, 不适合使用 Nosql 产品
    在这里插入图片描述

  4. Nosql 产品的分类
    1. 键值对存储: redis 数据库
    2. 基于文档存储: MongoDB
    3. 基于列存储 : Hbase

二、Redis 简介

  1. 什么是 redis
    redis 是一款非常受欢迎的 Nosql 产品。基于键值对存储数据。
  2. redis 的特点和优势
    1. 基于内存存储数据, 处理数据的速度快。
    2. 基于 key 和 value 存储数据。
    3. 有自己的 key 过期策略。
    4. 数据类型丰富。
    5. redis 有自己特有的持久化机制。
    6. 支持订阅 / 发布
  3. 都谁在使用 redis :
    1. 国外 : github 、 stackoverflow 等。
    2. 国内: 爱奇艺、 优酷、 淘宝 等。

三、安装 redis

准备

CentOS 7、gcc 编译环境、redis 安装包
将 redis 安装包传至 Linux 操作系统

下载地址:链接:https://pan.baidu.com/s/1G32yyTqky6lPnYXAI-4f5Q
提取码:qbvz

1. 安装 gcc 编译环境

由于 reids 是采用 c 语言编写的,故需要 gcc 编译环境用于安装

安装可参考:https://blog.csdn.net/qq_43225978/article/details/88998755#_gcc_16

2. 解压 redis3.0.0.tar.gz

tar -zxvf redis-3.0.0.tar.gz -C /usr/

3. 安装 redis

进入到解压后的目录,执行以下命令:

# 编译
	make
# 安装
	make install

redis 编译报致命错误:jemalloc/jemalloc.h:没有那个文件或目录

4. 启动 redis 服务

1. 使用 redis 默认的配置启动

	redis-server

2. 指定配置文件启动【重点】

  1. 修改配置文件 redis.conf
    
    ......
    

    ################################ GENERAL #####################################

    # By default Redis does not run as a daemon. Use 'yes' if you need it.
    # Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
    # 将 daemonize 值改为 yes,使 redis 服务在后台启动运行
    daemonize yes

    ......

  2. 启动 redis 服务
    	redis-server redis.conf

5. 配置 redis 为启动服务器是自动启动服务

1.
	mkdir /etc/redis
2.
	mkdir /var/redis
3.
	cp /usr/redis-3.0.0/utils/redis_init_script /etc/init.d/redis
4.
	vi /etc/init.d/redis
# 在文件最开始添加如下内容,指定 reids 作为系统服务的启动级别
	#chkconfig: 345 60 60
5.
	mkdir /var/redis/6379
6.
	cp /usr/redis-3.0.0/redis.conf  /etc/redis/6379.conf
7.
   	vi /etc/redis/6379.conf
8.
# 输入以下命令,显示行数
	:set nu
# 修改以下内容
	......
	 41 pidfile /var/run/redis_6379.pid
	......
	 103 logfile /var/log/redis_6379.log
	......

6. 将 redis 添加到系统服务,并设置为开机自启动

	chkconfig --add redis
	chkconfig redis on

7. 访问 redic 客户端命令行

1. 默认访问本机的 redis 指令

	redis-cli

2. 访问远程指定服务器的 redis 指令

	redis-cli -h ip -p port

8. Redis server 的停止

1. 强制结束程序

使用 kill -9 进程的 pid,强行终止 Redis 进程可能会导致 redis 持久化丢失;

1.
	ps -ef | grep redis
2.
	kill -9 pid

2. 使用 shutdown 命令

正确停止 redis 的方式是向 redis 发送 shutdown 命令,方法为:(关闭默认端口)

1.
	cd /usr/redis-3.0.0/bin
2.
	./redis-cli shutdown

四、 Redis 全局命令

  1. 查看所有的 key — keys *

  2. 统计 key 的数量 — dbsize

  3. 删除 key — del key

  4. 设置 key 的过期时间 ( / 秒 ) — expire key 时间

  5. 查看 key 的过期状态 — ttl key
    返回值 为正数: 代表剩余过期时间
    返回值 为 -1 : 代表指定 key 存在,没有设置过期策略
    返回值 为 -2: 指定的 key 已经不存在了

  6. 取消 key 的超时设置 — persist key

  7. 清除所有 key
    flushdb 清空当前子库下所有的 key
    flushall 清空所有子库

    redis 默认提供了 16 个子库, 每一个子库以下标形式标注,从 0-15 个。 可以使用命令select index切换子库

  8. 退出 redis 客户端 — quit

  9. 查看命令帮助文档 — help 命令

五、 redis 的数据类型

Redis 中的数据类型种类: String list set zset hash
- String 类型 : 就是一个字符串。
- list 类型: 是一个列表。 相当于 java 中的 list 集合, 成员有下标,有序。成员可以重复。
- set 类型: 是一个集合。相当于 java 中的 set, 无序、无下标、成员不可重复。
- zset 类型: 成员会有分值。
- hash 类型: 相当于 map 结构。

六、windows 版本的 redis 的下载与安装

参考:
下载: https://github.com/MSOpenTech/redis/releases
下载指导:https://www.cnblogs.com/tommy-huang/p/6093813.html
安装指导:
https://blog.csdn.net/u012343297/article/details/78839063
Linux 安装部署 Redis(超级详细)