Redis-入门

NoSQL

NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,
泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储

关系型数据库和NoSQL区别

NoSQL四大类型

Redis-入门_第1张图片

Redis概述

Redis(Remote Dictionary Server ),即远程字典服务
是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库缓存消息中间件

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

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

Redis安装

Windows下安装

下载地址:https://github.com/tporadowski/redis/releases。
Redis-入门_第2张图片
下载完成后解压文件
Redis-入门_第3张图片
开启Redis 运行服务即可,双击
在这里插入图片描述
出现
Redis-入门_第4张图片
使用Redis客户端连接Redis,双击
在这里插入图片描述
出现
Redis-入门_第5张图片

Linux下安装

  1. 进入Redis官网下载安装包 https://redis.io/

Redis-入门_第6张图片
2. 将安装包上传到服务器
Redis-入门_第7张图片
3. 解压Redis的安装包
在这里插入图片描述
解压完成
在这里插入图片描述
4. 安装基本的环境

yum install gcc-c++
make
make install

在这里插入图片描述
注意!!!!
如果Redis版本为6.0以上,需要升级gcc

# 先检查gcc的环境 
gcc -v 
# 查看gcc版本 
yum -y install centos-release-scl 
# 升级到9.1版本 
yum -y install devtoolset-9-gcc devtoolset-9-gcc- c++ devtoolset-9-binutils 

scl enable devtoolset-9 bash 
#以上为临时启用,如果要长期使用gcc 9.1的话: 
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile 
# 进入redis解压文件 
make 
# 6.0的坑,gcc版本 9.0 以上
# 等待完毕

Make完毕后 进入redis目录下 我的是 /opt/redis-6.0.5
输入make install

make install
  1. 进入/usr/local/bin查看

在这里插入图片描述
我们便找到了Redis的启动服务文件redis-server和客户端redis-cli

  1. 我们可以在此目录下新建一个配置文件的目录,用来存放配置文件
# 创建一个目录
mkdir myconfig

# 将redis的配置文件复制一份到此目录下
cp /opt/redis-6.0.5/redis.conf myconfig

在这里插入图片描述
在这里插入图片描述
6. 配置redis.config 配置文件

配置redis后台启动

# 进入Redis配置文件
vim redis.config

# 修改daemonize 后参数为 yes

Redis-入门_第8张图片
7. 启动 Redis 服务

[root@mycentos bin]# redis-server myconfig/redis.conf 
# 启动redis服务 通过myconfig/redis.conf配置文件来启动

Redis-入门_第9张图片
8. Redis客户端连接连接测试

redis-cli -p 6379

Redis-入门_第10张图片
9. 查看Redis进程是否开启

ps -ef grep redis

在这里插入图片描述
10. 关闭Redis服务

shutdown
exit

Redis-入门_第11张图片

Redis性能测试

# redis 性能测试的基本命令如下:
redis-benchmark [option] [option value]

注意:该命令是在 redis 的目录下执行的,而不是 redis 客户端的内部指令。
Redis-入门_第12张图片
实例

测试 100条并发 100000请求数的性能
redis-benchmark -h localhost -p 6379 -c 100 -n 100000

Redis基础知识

Redis 有 16 个数据库

进入redis.conf查看
vim redis.conf

在这里插入图片描述

1. Redis切换数据库

# 切换数据库 index为数据库索引 0-15
127.0.0.1:6379> select index 

# 查看数据库大小
127.0.0.1:6379> dbsize 

# 查看当前数据库所有的key
127.0.0.1:6379> keys *

# 清空当前数据库内容
127.0.0.1:6379> flushdb

# 清空全部数据库内容
127.0.0.1:6379> flushall

Redis-入门_第13张图片

2. Reids是单线程

Redis采用的是基于内存的采用的是单进程单线程模型的 KV 数据库,由C语言编写,官方提供的数据是可以达到100000+的QPS(每秒内查询次数)。这个数据不比采用单进程多线程的同样基于内存的 KV 数据库 Memcached 差!

为什么Redis这么快

1、完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1);

2、采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗

你可能感兴趣的:(Redis,redis)