redis学习笔记-安装redis

第一章 Nosql

1.1什么是nosql

NoSQL = Not Only SQL(不仅仅是 SQL) ,也解释为 non-relational(非关系型数据库)。在
NoSQL 数据库中数据之间是无联系的,无关系的。数据的结构是松散的,可变的。

1.2为什么使用nosql

关系型数据库的瓶颈:
1)无法应对每秒上万次的读写请求,无法处理大量集中的高并发操作。关系型数据的是
IO 密集的应用。硬盘 IO 也变为性能瓶颈
2)无法简单地通过增加硬件、服务节点来提高系统性能。数据整个存储在一个数据库中
的。多个服务器没有很好的解决办法,来复制这些数据。
3)关系型数据库大多是收费的,对硬件的要求较高。软件和硬件的成本花费比重较大

1.3nosql优势

(1) 大数据量,高性能
NoSQL 数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益
于它的无关系性,数据库的结构简单。关系型数据库(例如 MySQL)使用查询缓存。这
种查询缓存在更新数据后,缓存就是失效了。在频繁的数据读写交互应用中。缓存的性能
不高。NoSQL 的缓存性能要高的多。
(2) 灵活的数据模型
NoSQL 无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关
系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直
就是一个噩梦。尤其在快速变化的市场环境中,用户的需求总是在不断变化的。
(3) 高可用
NoSQL 在不太影响性能的情况,就可以方便的实现高可用的架构。
NoSQL 能很好的解决关系型数据库扩展性差的问题。弥补了关系数据(比如 MySQL)
在某些方面的不足,在某些方面能极大的节省开发成本和维护成本。
MySQL 和 NoSQL 都有各自的特点和使用的应用场景,两者结合使用。让关系数据库
关注在关系上,NoSQL 关注在存储上。
(4) 低成本
这是大多数分布式数据库共有的特点,因为主要都是开源软件,没有昂贵的 License 成

1.4nosql的劣势

(1) 不支持标准的 SQL,没有公认的 NoSQL 标准
(2) 没有关系型数据库的约束,大多数也没有索引的概念
(3) 没有事务,不能依靠事务实现 ACID.
(4) 没有丰富的数据类型(数值,日期,字符,二进制,大文本
等)

第二章Redis安装和使用

Redis 是当今非常流行的基于 KV 结构的作为 Cache 使用的 NoSQL 数据库

2.1redis介绍

Remote Dictionary Server(Redis)是一个开源的使用 C 语言编写、支持网络、可基于内存
亦可持久化的 Key-Value 数据库. Key 字符类型,其值(value)可以是字符串(String), 哈希(Map),
列表(list), 集合(sets) 和有序集合(sorted sets)等类型,每种数据类型有自己的专属命令。所
以它通常也被称为数据结构服务器。
Redis 的作者是 Antirez,来自意大利的西西里岛,现在居住在卡塔尼亚。目前供职于
Pivotal 公司(Pivotal 是 Spring 框架的开发团队),Antirez 被称为 Redis 之父。
Redis的代码托管在GitHub上https://github.com/antirez/redis,开发十分活跃,代码量只
有3万多行。
官网:https://redis.io/
中文:http://www.redis.cn/

2.2Window 上安装 Redis

Windows 版本的 Redis 是 Microsoft 的开源部门提供的 Redis. 这个版本的 Redis 适合开
发人员学习使用,生产环境中使用 Linux 系统上的 Redis
(1) 下载
官网:https://redis.io/
windows 版本:https://github.com/MSOpenTech/redis/releases
redis学习笔记-安装redis_第1张图片
(2) 安装
下载的 Redis-x64-3.2.100.zip 解压后,放到某个目录(例如 d:\tools\),即可使用。
目录结构:
redis学习笔记-安装redis_第2张图片
(3) 启动

  1. Windows7 系统双击 redis-server.exe 启动 Redis
    redis学习笔记-安装redis_第3张图片
  2. Windows 10 系统
    有的机器双击 redis-server.exe 执行失败,找不到配置文件,可以采用以下执行方式:
    在命令行(cmd)中按如下方式执行:
    D:\tools\Redis-x64-3.2.100>redis-server.exe redis.windows.conf
    如图:
    redis学习笔记-安装redis_第4张图片
    (4) 关闭
    按 ctrl+c 退出 Redis 服务程序。

2.3Linux 上安装 Redis

(1) 安装

  1. 上传 redis-4.0.13.tar.gz 到 linux 系统。使用 Xftp 工具

在这里插入图片描述
2. 解压 redis-4.0.13.tar.gz 到/usr/local 目录
在这里插入图片描述
3. 查看解压后的文件
切换目录 cd /usr/local
执行 ll
redis学习笔记-安装redis_第5张图片
4. 安装 gcc 编译器。
Redis 是使用 c 语言编写的。使用源文件安装方式,需要编译 c 源文件,会使用 gcc 编译器。
什么是 gcc ?
gcc 是 GNU compiler collection 的缩写,它是 Linux 下一个编译器集合(相当于 javac ),是
c 或 c++程序的编译器。
使用yum进行安装gcc 。执行命令:yum -y install gcc
在这里插入图片描述
在解压后的 Redis 目录下执行(cd /usr/local/redis-4.0.13) make 命令。

  1. 编译 redis 源文件。
  1. 开始执行 make
    cd /usr/local/redis-4.0.13 再执行 make
    在这里插入图片描述
    如果 make 命令执行过程中出现错误:
    error: jemalloc/jemalloc.h: No such file or directory
    解决方式执行 make MALLOC=libc
    2)执行 make 成功的标志
    在这里插入图片描述3)查看make编译结果,cd src目录
    cd src 在执行 ls
    redis学习笔记-安装redis_第6张图片
    (2) 启动 Redis
    redis 安装目录下 redis.conf 是重要的配置文件,包含 redis 服务器的配置信息。
    启动 redis 需要指定配置文件路径。
    启动方式:
    ①前台启动 ./redis-server redis.conf 配置文件路径
    ②后台启动 ./redis-server redis.conf 配置文件路径 &
    第①种 前台启动
    启动 Redis 的服务器端:切换到 src 目录下执行 redis-server 程序
    redis学习笔记-安装redis_第7张图片或者使用全路径
    redis学习笔记-安装redis_第8张图片
    redis 应用以前台的方式启动,不能退出当前窗口,退出窗口,应用终止。
    在其他窗口查看 redis 启动的进程
    在这里插入图片描述第②种 后台启动
    src目录下执行 ./redis-server redis.conf配置文件路径 &
    此时关闭窗口,查看redis进程,依然存在。
    redis学习笔记-安装redis_第9张图片
    查看redis进程
    在这里插入图片描述
    (3) 关闭 Redis
    关闭方式:
    ①使用 redis 客户端关闭,向服务器发出关闭命令
    切换到 redis-4.0.13/src/ 目录,执行 ./redis-cli shutdown
    推荐使用这种方式, redis 先完成数据操作,然后再关闭。
    例如:
    redis学习笔记-安装redis_第10张图片
    ②kill pid 或者 kill -9 pid
    这种不会考虑当前应用是否有数据正在执行操作,直接就关闭应用。
    先使用 ps -ef | grep redis 查出进程号,在使用 kill pid
    redis学习笔记-安装redis_第11张图片

2.4Redis 客户端

Redis 客户端是一个程序,通过网络连接到 Redis 服务器,在客户端软件中使用 Redis 可
以识别的命令,向 Redis 服务器发送命令,告诉 Redis 想要做什么。Redis 把处理结果显示在
客户端界面上。通过 Redis 客户端和 Redis 服务器交互。
Redis 客户端发送命令,同时显示 Redis 服务器的处理结果在。
2.4.1 redis 命令行客户端:
redis-cli(Redis Command Line Interface)是 Redis 自带的基于命令行的 Redis 客户端,用
于与服务端交互,我们可以使用该客户端来执行 redis 的各种命令。
两种常用的连接方式:

  1. 直接连接 redis (默认 ip127.0.0.1,端口 6379):./redis-cli
    在 redis 安装目录/src,执行 ./redis-cli
    此命令是连接本机 127.0.0.1 ,端口 6379 的 redis
  2. 指定 IP 和端口连接 redis:./redis-cli -h 127.0.0.1 -p 6379
    -h redis 主机 IP(可以指定任意的 redis 服务器)
    -p 端口号(不同的端口表示不同的 redis 应用)
    在 redis 安装目录/src,执行 ./redis-cli -h 127.0.0.1 -p 6379
    例 1:
    在这里插入图片描述
    2.4.2 redis 远程客户端
    Redis Desktop Manager:C++ 编写,响应迅速,性能好。
    官网地址:https://redisdesktop.com/
    redis学习笔记-安装redis_第12张图片点击“DOWNLOAD”
    redis学习笔记-安装redis_第13张图片
  3. 安装客户端软件
    在 Windows 系统使用此工具,连接 Linux 上或 Windows 上的 Redis , 双击此 exe 文件执
    行安装
    在这里插入图片描述
    安装后启动界面:
    redis学习笔记-安装redis_第14张图片
  4. 使用客户端连接 Linux 的 Redis
    连接Linux的Reids之前需要修改Redis服务器的配置信息。 Redis服务器有安全保护措
    施,默认只有本机(安装Redis的那台机器)能够访问。配置信息存放在Redis安装目录下的
    redis.conf文件。修改此文件的两个设置。
    远程连接redis需要修改redis主目录下的redis.conf配置文件:
    ①、bind ip 绑定ip此行注释
    ②、protected-mode yes 保护模式改为 no
    使用 vim 命令修改 redis.conf 文件,修改文件前备份此文件,执行 cp 命令
    在这里插入图片描述
    执行 vim redis.conf
    redis学习笔记-安装redis_第15张图片3. 使用 redis.conf 启动 Redis
    修改配置文件后,需要使用配置文件重新启动 Reids,默认不加载配置文件。先关闭已经启
    动的 Redis ,使用以下命令启动 Redis 在 Redis 安装目录执行:
    ./redis-server …/redis.conf &
    在这里插入图片描述
  5. 关闭 Linux 系统的防火墙
    linux 系统,命令行执行:systemctl stop firewalld
  6. 配置 Redis Desktop Manamager(RDM),连接 Redis
    在 RDM 的主窗口,点击左下的“Connect to Redis Server”
    redis学习笔记-安装redis_第16张图片
    连接成功后:
    redis学习笔记-安装redis_第17张图片2.4.3 redis 编程客户端
  7. Jedis
    redis 的 Java 编程客户端,Redis 官方首选推荐使用 Jedis,jedis 是一个很小但很健全的
    redis 的 java 客户端。通过 Jedis 可以像使用 Redis 命令行一样使用 Redis。
    ⚫ jedis 完全兼容 redis 2.8.x and 3.x.x
    ⚫ Jedis 源码:https://github.com/xetorthio/jedis
    ⚫ api 文档:http://xetorthio.github.io/jedis/
  8. redis 的其他编程语言客户端:
    C 、C++ 、C# 、Erlang、Lua 、Objective-C、Perl 、PHP 、Python 、Ruby、Scala 、Go
    等 40 多种语言都有连接 redis 的编程客户端

可能出现的报错

1 没有gcc
redis学习笔记-安装redis_第18张图片
解决: 安装gcc
使用yum进行安装gcc 。执行命令:yum -y install gcc 重新再编译 make 。
注意:安装完 gcc 之后,再执行 make,先执行 make distclean 清理一下上次 make 后产生的文件。
注意:在make执行之后再执行 make install,该操作则将 src下的许多可执行文件复制到/usr/local/bin 目录下,这样做可以在任意目录执行redis的软件的命令(例如启动,停止,客户端连接服务器等), make install 可以不用执行,看个人习惯。
2 error: jemalloc/jemalloc.h: No such file or directory
解决 make MALLOC=libc
3 gcc版本过低
错误原因:gcc版本问题,新版本的。redis6.0以上

server.c:5508:19: error: ‘struct redisServer’ has no member named ‘supervised_mode’
         if (server.supervised_mode == SUPERVISED_SYSTEMD) {
                   ^
server.c:5509:24: error: ‘struct redisServer’ has no member named ‘masterhost’
             if (!server.masterhost) {
                        ^
server.c:5519:19: error: ‘struct redisServer’ has no member named ‘supervised_mode’
         if (server.supervised_mode == SUPERVISED_SYSTEMD) {
                   ^
server.c:5526:15: error: ‘struct redisServer’ has no member named ‘maxmemory’
     if (server.maxmemory > 0 && server.maxmemory < 1024*1024) {
               ^
server.c:5526:39: error: ‘struct redisServer’ has no member named ‘maxmemory’
     if (server.maxmemory > 0 && server.maxmemory < 1024*1024) {
                                       ^
server.c:5527:176: error: ‘struct redisServer’ has no member named ‘maxmemory’
         serverLog(LL_WARNING,"WARNING: You specified a maxmemory value that is less than 1MB (current value is %llu bytes). Are you sure this is what you really want?", server.maxmemory);
                                                                                                                                                                                ^
server.c:5530:31: error: ‘struct redisServer’ has no member named ‘server_cpulist’
     redisSetCpuAffinity(server.server_cpulist);

解决办法

#升级到 5.3及以上版本
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
 
scl enable devtoolset-9 bash
 
#注意:scl命令启用只是临时的,推出xshell或者重启就会恢复到原来的gcc版本。
#如果要长期生效的话,执行如下:
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

你可能感兴趣的:(数据库,#,redis,redis,nosql,数据库)