博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CentOS7 安装 Redis 数据库及简单使用
阅读量:670 次
发布时间:2019-03-15

本文共 5818 字,大约阅读时间需要 19 分钟。

CentOS7 安装 Redis 数据库及简单使用

一、Redis 介绍

  • Redis 数据库是一个非关系型数据库。

1.1关系型数据库与非关系型数据库

  • 数据库按照其结构可以分为关系型数据库与其他数据库。而这些其他数据库我们统称为非关系型数据库。

1.2关系型数据库

  • 关系型数据库是一个结构化的数据库,创建在关系模型基础上,一般面向记录。
  • 它借助于集合代数等数学概念和方法来处理数据库中的数据。
  • 关系模型指二维表格模型,因而一个关系型数据库就可以由二维表及其之间的联系组成的一个数据组织。
  • 现实世界中,各种实体与实体之间的各种联系都可以用关系模型来表示。
  • SQL(Structured Query Language,结构化查询语言)语句就是一种基于关系型数据库语言,用来执行对关系型数据库中数据的检索和操作。
  • 主流的关系型数据库包括 Oracle,MySQL,SQL Server,Microsoft Access,DB2 等。

1.3非关系型数据库

  • NoSQL(NoSQL = Not Only SQL),意思是"不仅仅是SQL",是非关系型数据库的总称。
  • 主流 NoSQL 数据库由 Redis,MongBD,Hbase,CouhDB 等。
  • 以上这些数据库,它们的存储方式、存储结构以及使用的场景都是完全不同的。
  • 所以我们认为它是一个非关系型数据库的集合。
  • 而不是像关系型数据库一样,是一个统称。
  • 换句话说就是,主流的关系型数据库以外的数据库,都是非关系型的。

1.4非关系型数据库产生背景

  • High performance:对数据库高并发读写需求。
  • Huge Storage:对海量数据高效存储与访问需求。
  • High Scalability && Hige Availability:对数据库高可扩展性与高可用性需求。

2.Redis 简介

  • Redis是一个开源的,使用 C 语言编写,支持网络,可基于内存亦可持续化的日志型,key—value(键值对)数据库,是目前分布式架构中不可或缺的一环。

Redis 具有以下优点:

  • 具有极高的数据读写速度,数据读取的速度最高可达 110000 次/s,数据写入速度最高可达到 81000 次/s。
  • 支持丰富的数据类型,不仅仅支持简单的 key-value 数据类型,还支持 Strings,Lists,Hashes,Sets 及 Orered Sets 等数据类型操作。
  • 原子性,Redis 所有操作都是原子性的。
  • 支持数据备份,即 master–slave 模式的数据备份。

二、Redis 安装部署

准备工作:

主机名 操作系统 IP地址
Redis CentOS7 192.168.1.10
  • 实验所需软件包从这个链接下载:
  • 提取码:3gj6

1.安装 Redis 数据库

挂光盘,并配置yum源

[root@Redis ~]# yum -y install gcc*             #安装依赖包[root@Redis ~]# rz   #上传软件包[root@Redis ~]# tar zxf redis-3.2.9.tar.gz -C /usr/src/[root@Redis ~]# cd /usr/src/redis-3.2.9/[root@Redis redis-3.2.9]# make && make PREFIX=/usr/local/redis install

在这里插入图片描述

2.执行启动脚本安装

[root@Redis redis-3.2.9]# ln -s /usr/local/redis/bin/* /usr/local/bin/[root@Redis redis-3.2.9]# cd utils/[root@Redis utils]# ./install_server.sh依次回车即可或自己定义

在这里插入图片描述

3.通过 Redis 服务控制脚本对 Redis 服务进行控制

[root@Redis utils]# netstat -anpt | grep redis        #查看redis端号tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      5058/redis-server 1 [root@Redis utils]# /etc/init.d/redis_6379 stop       #关闭Redis服务Stopping ...Redis stopped[root@Redis utils]# /etc/init.d/redis_6379 start      #启用Redis服务Starting Redis server...[root@Redis utils]# /etc/init.d/redis_6379 status     #查看Redis运行状态Redis is running (5146)

在这里插入图片描述

4.配置参数

Redis主配置文件为:/etc/redis/6379.conf

常见配置项:

  • bind:监听地址。
  • port:端口号。
  • daemonize yes:启用守护进程。
  • pidfile:指定 PID 文件。
  • loglevel notice:日志级别。
  • logfile:指定日志文件。

三、Redis 命令工具

  • Redis 软件提供了多个命令工具,当 Redis 安装时,所包含的软件包工具会同时被安装到系统中,在系统中可以直接使用。

命令工具及作用如下:

  • redis-server:用于启用 Redis 的工具。
  • redis-benchmark:用于检测 Redis 在本机运行效率。
  • redis-check-aof:修复 AOF 持久化文件。
  • redis-check-rdb:修复 RDB 持久化文件。
  • redis-cli:Redis 命令工具。
  • redis-setinel:redis-server 命令工具软连接。

1.redis-cli 命令行工具

1)连接到本地的 Redis 数据库,并用 ping 命令测试 Redis 服务是否启动

在这里插入图片描述
2)连接到其他服务器上的 Redis 服务
在 Redis 主配置文件中的 bind 项后添加本机的 IP 地址

[root@Redis ~]# vim /etc/redis/6379.conf

在这里插入图片描述

[root@Redis ~]# /etc/init.d/redis_6379 restartStopping ...Redis stoppedStarting Redis server...[root@Redis ~]# redis-cli -h 192.168.1.10 -p 6379192.168.1.10:6379> exit[root@Redis ~]#

在这里插入图片描述

2.redis-benchmark 测试工具

常用选项:

  • -h:指定服务器主机名;
  • -p:指定服务器端口;
  • -s:指定服务器 socket;
  • -c:指定并发连接数;
  • -n:指定请求数;
  • -d:以字节(B)的形式指定 SET/GET 值的数据大小;
  • -k:1=keep alive 0=reconnect;
  • -r:SET/GET/INCR 使用随机key,SADD使用随机值;
  • -P:通过管道传输<numreq>请求;
  • -q:强制退出redis。仅显示 query/sec值;
  • --csv:以CSVA格式输出;
  • -l:生成循环,永久执行测试;
  • -t:仅运行以逗号分隔的测试命令列表;
  • -l:ldle模式。仅打开N个idle连接并等待;

1)性能测试:发送100个并发连接与100000个请求测试性能

[root@Redis ~]# redis-benchmark -h 192.168.1。10 -p 6379 -c 100 -n 100000

2)性能测试:测试存取大小为100B的数据包的性能

[root@Redis ~]# redis-benchmark -h 192.168.1.10 -p 6379 -q -d 100

3)性能测试:测试本机redis服务在进行set与lpush操作时的性能

[root@Redis ~]# redis-benchmark -t set,lpush -n 100000 -qSET: 99206.34 requests per secondLPUSH: 97465.88 requests per second[root@Redis ~]#

三、Redis数据库常用命令

Redis 数据库采用 key-value(键值对)的数据存储形式。所以使用的命令是 set 与 get 命令。

  • set:存放数据,基本命令格式为 set key value
  • get:获取数据,基本命令格式为 get key
[root@Redis ~]# redis-cli -h 192.168.1.10 -p 6379192.168.1.10:6379> set xingming zhangsanOK192.168.1.10:6379> get xingming"zhangsan"

在这里插入图片描述

1.key 相关命令

1)keys

  • 取符合规则的键值列表,通常情况可以结合 *(所有),?(单个字符) 等选项来使用。
192.168.1.10:6379> set a1 1           192.168.1.10:6379> set a2 2192.168.1.10:6379> set v1 3192.168.1.10:6379> keys *             #显示当前库所有键192.168.1.10:6379> keys xing????      #显示键以xing开头后面有4个字符的192.168.1.10:6379> keys a*            #显示以a开头的所有键

在这里插入图片描述

2)exists

  • 判断键值是否存在。
192.168.1.10:6379> exists xingming(integer) 1192.168.1.10:6379> exists nianling(integer) 0

在这里插入图片描述

3)del

  • 删除当前数据库的指定 key。
192.168.1.10:6379> get a1"1"192.168.1.10:6379> del a1(integer) 1192.168.1.10:6379> get a1(nil)

在这里插入图片描述

4)type

  • 获取 key 对应的 value 值类型,默认情况下 Redis 键值类型都是字符串 string 类型。
192.168.1.10:6379> type xingmingstring

5)rename

  • 对已有 key 进行重命名,无论目标 key 是否存在都进行重命名,且源 key 的值会覆盖目标 key 的值。
192.168.1.10:6379> keys a*1) "a2"192.168.1.10:6379> rename a2 a33OK192.168.1.10:6379> keys a*1) "a33"

在这里插入图片描述

6)renamenx

  • 对已有 key 进行重命名,并检测新名是否存在。跟 rename 区别则是当 renamenx 进行重命名时,如果目标 key 存在则不进行重命名。
192.168.1.10:6379> set a1 1OK192.168.1.10:6379> set a2 2OK192.168.1.10:6379> keys a*1) "a2"2) "a33"3) "a1"192.168.1.10:6379> renamenx a33 a1(integer) 0192.168.1.10:6379> keys a*1) "a2"2) "a33"3) "a1"192.168.1.10:6379> renamenx a33 a4(integer) 1192.168.1.10:6379> keys a*1) "a2"2) "a4"3) "a1"

在这里插入图片描述

7)dbsize

  • 查看当前数据库中 key 的数目。
192.168.1.10:6379> keys *1) "a2"2) "xingming"3) "mylist"4) "a4"5) "v1"6) "key:__rand_int__"7) "counter:__rand_int__"8) "a1"192.168.1.10:6379> dbsize(integer) 8

在这里插入图片描述

2.多数据库常用命令

1)多数据库间切换

  • Redis 数据库支持多数据库,默认包含 16 个数据库,名称用数字 0–15 表示。redis-cli 进入数据库后,默认使用的数据库0。
192.168.1.10:6379> select 11OK192.168.1.10:6379[11]> select 16(error) ERR invalid DB index

在这里插入图片描述

2)多数据库间移动数据

  • Redis 的多数数据库在一定程度上是无法相对独立的。

例如,在数据库 0 上面存放的 k1 的数据,在其他的 1~15 的数据库上是无法查看到的:

192.168.1.10:6379[11]> select 0OK192.168.1.10:6379> set k1 99OK192.168.1.10:6379> get k1"99"192.168.1.10:6379> select 1OK192.168.1.10:6379[1]> get k1(nil)

在这里插入图片描述

  • Redis 数据库提供了一个 move 命令,其可以进行多数据库的数据移动。
192.168.1.10:6379[1]> select 0OK192.168.1.10:6379> get k1"99"192.168.1.10:6379> move k1 3(integer) 1192.168.1.10:6379> select 3OK192.168.1.10:6379[3]> get k1"99"192.168.1.10:6379[3]> select 0OK192.168.1.10:6379> get k1(nil)

在这里插入图片描述

转载地址:http://zswqz.baihongyu.com/

你可能感兴趣的文章