redis学习笔记
在bilibili在看狂神说的redis
https://www.bilibili.com/video/BV1S54y1R7SB/?p=14&spm_id_from=pageDriver&vd_source=413a07fa4f3feb545cc50ffec6b59e30
NoSQL
NoSQL(Not Only SQL),即不仅是SQL,泛指非关系型数据库。
NoSQL 易扩展,NoSQL 数据库种类繁多(MongoDB、Redis 等),共同的特点都是去掉关系数据库的关系型特性。
数据之间无关系,这样就非常容易扩展,无形之间也在架构的层面上带来了可扩展的能力。
大数据量下 NoSQL 数据库具有非常高的读写性能,这得益于它的无关系性,数据库的结构简单。
NoSQL 数据库的典型代表就是 Redis。
Redis
Redis(Remote Dictionary Server ),即远程字典服务。
一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key - Value 数据库,并提供多种语言的 API。
从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。
从 2013 年 5 月开始,Redis的开发由 Pivotal 赞助。
Redis是单线程的
因为 Redis 是基于内存的操作,CPU不是 Redis 的瓶颈。Redis 的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且 CPU 不会成为瓶颈,那就顺理成章地采用单线程的方案了。
cd /usr/local/bin
文件介绍
redis-server.exe:服务端程序,提供 Redis 服务。
redis-cli.exe: 客户端程序,通过它连接 Redis 服务并进行操作。
redis-check-dump.exe:RDB 文件修复工具。
redis-check-aof.exe:AOF 文件修复工具。
redis-benchmark.exe:性能测试工具,用以模拟同时由 N 个客户端发送 M 个 SETs/GETs 查询(类似于 Apache 的 ab 工具)。
redis.windows.conf: 配置文件,将 Redis 作为普通软件使用的配置,命令行关闭则 Redis 关闭。
redis.windows-service.conf:配置文件,将 Redis 作为系统服务的配置。
在Linux上安装
由于 Redis 由 ANSI C 编写,安装 Redis 前需要先安装 C 语言环境。
yum install gcc-c++
解压
redis-stable.tar.gz
移动
一般都会将 redis 目录放置到 /usr/local/redis
mv /home/sail/redis-stable.tar /usr/local/redis
编译
跳转到 /usr/local/redis 下
make
查看
ps -ef|grep redis
性能测试
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vpCEcxls-1667398205484)(C:\Users\huai66\AppData\Roaming\Typora\typora-user-images\image-20221102154823983.png)]
10万个请求
100个客户端
每次写入三个字节
单机性能
redis的基础命令
Redis 默认有 16 个数据库
默认使用的是第 0 个数据库
不同数据库存不同的值
切换数据库
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]>
[]
中的数字即为数据库编号(0 号数据库为默认,不展示编号)。
[root@light ~]# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> select 3
OK
127.0.0.1:6379[3]> select 1
OK
127.0.0.1:6379[1]> DBSIZE
(integer) 0
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> DBSIZE
(integer) 4
查看当前数据库大小
DBSIZE
127.0.0.1:6379> DBSIZE
(integer) 4
清空数据库
flushdb
127.0.0.1:6379[1]> flushdb
OK
清空所有库
flushall
127.0.0.1:6379[1]> flushall
OK
查看当前数据库所有的键
keys *
127.0.0.1:6379[1]> keys *
"hello"
判断键是否存在
exists 键名称
127.0.0.1:6379> set name light
OK
127.0.0.1:6379> set age 1
OK
127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> exists age
(integer) 1
查看键生存时间
expire 设置键过期的时间 单位是秒
ttl 查看键生存时间
127.0.0.1:6379