论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
运维.售后
›
运维.售后
›
Redis简介以及linux下常用下令
Redis简介以及linux下常用下令
前进之路
金牌会员
|
2024-7-27 07:51:28
|
显示全部楼层
|
阅读模式
楼主
主题
637
|
帖子
637
|
积分
1911
`学习目标
一、redis简介
1.1 redis介绍
Remote Dictionary Server (redis) 是一个由salvatore Sanfilippo开发的高性能的key-value数据库(存储系统)。Redis是一个开源的使用ANSI C语言编写、服从BSD协议、支持网络、可基于内存也可持久化的日志型,key-value数据库,并提供多种语言的api。它通常被称为数据结构服务器,因为值可以是字符串(String)、哈希(Map)、列表(List)、集合(Set)、有序集合()等类型。
Redis是一种运行速率很快、并发性能很强(高并发、高扩展、高性能),并且运行在内存上的Nosql数据库。
Nosql数据库和传统数据库相比的上风:
Nosql数据库无需事先为存储的数据创建字段,随时可以存储自界说的数据格式。
而在关系型数据库里,增删字段是一件非常麻烦的事变。假如非常大数据量的表,增长字段就是一个噩梦。
1.2 redis上风
性能极高 redis能读的速率是110000次/秒 ,写的速率是81000次/秒。
丰富的数据类型 redis支持二进制案例的String、List、hash、Set 以及 OrderedSet 数据类型操作。
原子 redis的所有操作都是原子性的,同时还支持对几个操作全并后的原子性实行。
丰富的特性- redis还支持public/subscribe、关照key逾期等特性。
1.3 redis使用场景
缓存
热门数据(经常查询,但不修改或删除数据)
分布式锁
锁即在多线程环境下,对共享资源的访问造成的线程安全问题,通过锁的机制来实现资源访问互斥
token存储
短信验证码存储
全局唯一id
排行榜
redis的SortSet数据结构能轻松的搞定
计算器/限速器
利用redis中原子性的自增操作,可以统计类似用户点赞数、用户访问数。限速器如限定某个用户访问某个api的评率。常用的有抢购时,防止用户疯狂点击带来不必要的压力
挚友关系
利用集合的一些下令。如求交集、并集、差集、可以方便搞定一些共同挚友、共同爱好之类的功能。
简朴消息队列
除了自带的发布订阅模式,也可以用list来实现一个队列机制如到货关照、邮件发送之类的需求,不必要高可靠,但是会带来非常大的db压力,完全可以用list来完成异步解耦。
session共享
redis上存储Session ,无论用户落在哪台机器上都可以获取对应Session信息。
1.4 Nosql对比分析
redis和memcache
redis和memcache都是内存数据库。mencache可以缓存其他东西 如图片、视频等。
memcache数据结构单一,redis更丰富
假造内存。redis物理内存用完了,可以将一些很久没有用到的value交换到磁盘。
存储安全。memcache挂掉后,数据没有(没有持久化)redis可以定期保存到磁盘
redis和mongoDB
redis和mongodb 并不是竞争关系,更多的是一种协作共存的关系。
mongodb本质还是硬盘数据库,在复杂查询时仍然斲丧大量的资源斲丧,而且在处理复杂逻辑时仍然要不可制止的进行多次查询。这时停当余redis或memcache如许的内存数据库来作为中央层进行缓存和加快。
二、redis入门
2.1 redis下载与安装
redis下载
redis下载地点:https://www.redis.net.cn/
Redis Desktop Manager 图形工具下载地点:https://redisdesktop.com/
redis安装
windows安装
Linux安装
redis linux 下根本操作
编辑redis.config文件
redis解压到/home/softwares/redis-7.2.4
vim /home/softwares/redis-7.2.4/redis.conf
复制代码
在redis.conf文件中配置redis为背景运行
daemonize yes
复制代码
以配置文件的方式启动
进入到usr/local.bin目次
cd /usr/local/bin
复制代码
redis-server /home/softwares/redis-7.2.4/redis.conf
复制代码
这里我把conf 拷贝 /usr/local/bin 改名为redis7.conf
所以我的启动下令是
redis- server /usr/local/bin/redis7.conf
复制代码
单实例关闭数据库
redis-cli shutdown
复制代码
多实例关闭数据库
redis-cli - p 6379 shutdown
复制代码
redis默认配置16个数据库
常用操作
检查6379端口是否在监听
netstat -lntp | grep 6379
复制代码
检查redis 背景进程是否存在
ps -ef |grep redis
复制代码
redis 为什么是6379端口
6379实在手机按键上MERZ对应的号码。而MERZ取自意大利歌女Alessia Merz的名字。
毗连redis并测试
进入redis的下令终端
[root@localhost bin]# /usr/local/bin/redis-cli
复制代码
在redis终端输入ping下令
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
复制代码
读写数据
向k1保存数据,获取数据
127.0.0.1:6379> set k1 hello
OK
127.0.0.1:6379> get k1
"hello"
127.0.0.1:6379>
复制代码
测试性能
[root@localhost bin]# redis-benchmark -a 123456
复制代码
清空数据库
清空当前数据库
清空所有数据库
[root@localhost bin]# /usr/local/bin/redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> flushall
OK
127.0.0.1:6379>
复制代码
键
模糊查询
模糊查询keys下令 ,有三个通配符号:*、?、[ ].
匹配恣意字符*
查询所有的键
127.0.0.1:6379> keys *
1) "k1"
2) "ke"
3) "k"
4) "k3"
5) "kh"
6) "k2"
7) "sdk"
复制代码
模糊查询“k”开头的,反面随便匹配多少个字符
127.0.0.1:6379> keys k*
1) "k1"
2) "ke"
3) "k"
4) "k3"
5) "kh"
6) "k2"
复制代码
模糊查询“h”为最后一位,前面随便多少个字符
127.0.0.1:6379> keys *h
1) "kh"
127.0.0.1:6379>
复制代码
双* 模式,匹配恣意多个字符,查询包含K的键
127.0.0.1:6379> keys *d*
1) "sdk"
127.0.0.1:6379>
复制代码
匹配单个字符*
模糊查询“k”开头并且匹配一个字符
127.0.0.1:6379> keys k?
1) "k1"
2) "ke"
3) "k3"
4) "kh"
5) "k2"
复制代码
查询字符长度为3 并且以s开头的键
127.0.0.1:6379> keys s??
1) "sdk"
复制代码
匹配指定字符 【】
记得其他的字母,就第二个字母大概是d或f
127.0.0.1:6379> keys s[df]k
1) "sdk"
复制代码
键操作
exist key :判断某个key是否存在 1表现存在 0 表现不存在
127.0.0.1:6379> exists k2
(integer) 1
127.0.0.1:6379> exists k20
(integer) 0
复制代码
move key db:移动键到指定的库 1表现移动乐成
move k2 4
复制代码
ttl key:查看键另有多久逾期 -1表现永不逾期 -2 表现已逾期
expire key 秒:为键设置逾期时间(生命倒计时),单元是秒。
type key 查看键的数据类型
127.0.0.1:6379> type k1
string
127.0.0.1:6379> expire k1 60
(integer) 1
127.0.0.1:6379> ttl k1
(integer) 55
127.0.0.1:6379>
复制代码
scan:渐进式遍历键
SCAN cursor [MATCH pattern] [COUNT count]
scan 参数提供了三个参数,第一个是 cursor 整数值(hash桶的索引值),第二个是 key 的正则模式, 第三个是一次遍历的key的数量(参考值,底层遍历的数量不肯定),并不是符合条件的效果数量。第 一次遍历时,cursor 值为 0,然后将返回效果中第一个整数值作为下一次遍历的 cursor。一直遍历 到返回的 cursor 值为 0 时竣事。
留意:但是scan并非美满无瑕, 假如在scan的过程中假如有键的变化(增长、 删除、 修改) ,那 么遍历效果大概会碰到如下问题: 新增的键大概没有遍历到, 遍历出了重复的键等情况, 也就是说 scan并不能包管完整的遍历出来所有的键, 这些是我们在开发时必要考虑的。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
前进之路
金牌会员
这个人很懒什么都没写!
楼主热帖
低代码平台 - 危险的赌注
Docker 基础 - 1
后台性能测试规范
如何从800万数据中快速捞出自己想要的 ...
Python3程序捕获Ctrl+C终止信号 ...
Redis常见使用场景
LeetCode 力扣 205. 同构字符串
MySQL与Java常用数据类型的对应关系 ...
日志技术简介
log4j原理及漏洞利用
标签云
挺好的
服务器
快速回复
返回顶部
返回列表