前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >redis | 三、redis基本知识

redis | 三、redis基本知识

作者头像
雨中散步撒哈拉
发布2022-09-21 11:39:16
3140
发布2022-09-21 11:39:16
举报
文章被收录于专栏:雨中散步撒哈拉

redis系列文章: https://liudongdong.top/categories/redis 本篇来源: https://liudongdong.top/archives/redissan-redis-ji-ben-zhi-shi 公众号:雨中散步撒哈拉 备注:欢迎关注公众号,一起学习,共同进步!

一、远程连接

1. 下载

关注公众号雨中散步撒哈拉,回复关键词020,进行下载

推荐俩个工具rdm或者another-redis

image.png

2. 连接

填写远程信息,进行连接

image.png

another-redis界面

image.png

rmd界面

image.png

二、测试性能

Redis 自带一个压测工具 redis-benchmark,有以下可选参数

image.png

1. 进入容器

代码语言:javascript
复制
docker exec -it docker_redis /bin/bash

# 进入容器执行
redis-benchmark -p 6379 -c 100 -n 100000

image.png

2. 查看终端输出

image.png

上半部分代表 100 个并发写入 10w 条数据,每次写入 3 个字节,keep-alive:1 代表服务器数量只有 1 台,并且在没有开启多线程的情况下只花了 2.86s ( tips:多线程是 redis 6.0 新增的 )

下半部分代表在 42.815ms 内处理完成全部请求

3. 查看检测设备

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 号,可以使用命令

image.png

切换数据库

代码语言:javascript
复制
select 号数

清空当前数据库

代码语言:javascript
复制
flushdb

清除所有的数据库

代码语言:javascript
复制
flushall

2. redis中的key

查看当前数据库所有的 key

代码语言:javascript
复制
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 的基本命令

创建一个键值对

代码语言:javascript
复制
set key value

删除键值对

代码语言:javascript
复制
del key

查看当前数据库中所有键

代码语言:javascript
复制
keys *

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

代码语言:javascript
复制
exists key

移动指定 key 到指定库

代码语言:javascript
复制
move key 库号

为 key 设置过期时间

代码语言:javascript
复制
expire key 过期时间/s

然后使用命令

代码语言:javascript
复制
ttl key

查看该 key 还有多久过期,如果该 key 不会过期则返回 -1,该 key 不存在则返回 -2,否则返回过期时间的倒计时

查看 key 对应 value 的数据类型

代码语言:javascript
复制
type key

--- EOF ---

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雨中散步撒哈拉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、远程连接
  • 1. 下载
  • 2. 连接
    • 二、测试性能
    • 1. 进入容器
    • 2. 查看终端输出
    • 3. 查看检测设备
      • 三、Redis 基本知识
      • 1. Redis 能干啥?
      • 2. Redis基本命令
      • 1. redis数据库
      • 2. redis中的key
      • 3. Redis单线程&多线程
      • 4. 题外话
        • 四、RedisKey 的基本命令
        相关产品与服务
        云数据库 Redis
        腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档