redis | 三、redis基本知识

redis系列文章:
https://liudongdong.top/categ...
本篇来源:
https://liudongdong.top/archi...
公众号:雨中散步撒哈拉
备注:欢迎关注公众号,一起学习,共同进步!
一、远程连接
1. 下载 关注公众号雨中散步撒哈拉,回复关键词020,进行下载
推荐俩个工具rdm或者another-redis
【redis | 三、redis基本知识】redis | 三、redis基本知识
文章图片

image.png
2. 连接 填写远程信息,进行连接
redis | 三、redis基本知识
文章图片

image.png
another-redis界面
redis | 三、redis基本知识
文章图片

image.png
rmd界面
redis | 三、redis基本知识
文章图片

image.png
二、测试性能
Redis 自带一个压测工具 redis-benchmark,有以下可选参数
redis | 三、redis基本知识
文章图片

image.png
1. 进入容器
docker exec -it docker_redis /bin/bash# 进入容器执行 redis-benchmark -p 6379 -c 100 -n 100000

redis | 三、redis基本知识
文章图片

image.png
2. 查看终端输出 redis | 三、redis基本知识
文章图片

image.png
上半部分代表 100 个并发写入 10w 条数据,每次写入 3 个字节,keep-alive:1 代表服务器数量只有 1 台,并且在没有开启多线程的情况下只花了 2.86s ( tips:多线程是 redis 6.0 新增的 )
下半部分代表在 42.815ms 内处理完成全部请求
3. 查看检测设备 redis | 三、redis基本知识
文章图片

image.png
三、Redis 基本知识
redis官网:http://redis.cn/
Redis 是一个基于 C 语言编写的,是可基于内存也可持久化的日志型 K-V 数据库,并提供多种语言的 API。可用作数据库,缓存和消息中间件
Redis 会周期性的把更新的数据写入磁盘或是把修改操作写入到追加的记录文件,并在此基础上完成主从复制
1. Redis 能干啥?
  1. 支持内存存储和持久化 ( EDB / AOF )
  2. 效率高,支持高并发,可以用做高速缓存
  3. 可以用于发布-订阅模式
  4. 地图信息分析
  5. 计数器,计时器
  6. 数据类型多样
  7. 支持集群和事务
2. Redis基本命令 1. redis数据库 Redis 默认有 16 个数据库,起始数据库为 0 号,可以使用命令
redis | 三、redis基本知识
文章图片

image.png
切换数据库
select 号数

清空当前数据库
flushdb

清除所有的数据库
flushall

2. redis中的key 查看当前数据库所有的 key
keys *

3. Redis单线程&多线程 Redis 在 6.0 之前只是单线程的,6.0 之后则支持多线程了,但是 Redis 在单线程下依旧很快,这是为什么呢?
其实,严格来说,Redis Server 是多线程的,只是它请求处理的整个流程是单线程处理的,所以所谓的 Redis 单线程快指的是其请求处理过程使用单线程时非常快,其中的原因有以下几点
  1. 纯内存操作,并且 Redis 是基于 C 编写的
  2. 使用 IO 多路复用
  3. 非 CPU 密集型任务
  4. 单线程带来的优势
  5. 没有多线程的上下文切换造成的开销
  6. 没有访问共享资源加锁造成的开销
Redis 6.0 引入的多线程其实是用来完成请求数据的协议解析,而对于请求处理阶段依然是单线程排队处理的
4. 题外话 为什么 Redis 选择 6379 作为端口号?
6379 在手机按键上是 MERZ 对应的号码,而 MERZ 取自意大利女歌手 Alessia Merz 的名字,Redis 作者 Antirez 早年看电视节目,觉得 Merz 在节目中的一些话愚蠢可笑,Antirez 喜欢造“梗”用于平时和朋友们交流,于是造了一个词 "MERZ",形容愚蠢,与 "stupid" 含义相同
后来 Antirez 重新定义了 "MERZ" ,形容”具有很高的技术价值,包含技艺、耐心和劳动,但仍然保持简单本质“
四、RedisKey 的基本命令
创建一个键值对
set key value

删除键值对
del key

查看当前数据库中所有键
keys *

判断是否存在某个键,如果存在则返回 1,否则返回 0
exists key

移动指定 key 到指定库
move key 库号

为 key 设置过期时间
expire key 过期时间/s

然后使用命令
ttl key

查看该 key 还有多久过期,如果该 key 不会过期则返回 -1,该 key 不存在则返回 -2,否则返回过期时间的倒计时
查看 key 对应 value 的数据类型
type key

    推荐阅读