设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间00 现在时间00 缓存数据 对自己狠一点,逼自己努力,再过几年你将会感谢今天发狠的自己、恨透今天懒惰自卑的自己。晚安!

对自己狠一点,逼自己努力,再过几年你将会感谢今天发狠的自己、恨透今天懒惰自卑的自己。晚安!

查看: 912|回复: 1

详解Redis 键和字符串常用命令

[复制链接]

  离线 

TA的专栏

  • 打卡等级:无名新人
  • 打卡总天数:2
  • 打卡月天数:0
  • 打卡总奖励:19
  • 最近打卡:2024-01-03 13:20:12
等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
25
主题
25
精华
0
金钱
106
积分
54
注册时间
2023-10-4
最后登录
2025-8-23

发表于 2025-3-10 18:38:30 | 显示全部楼层 |阅读模式

Redis 相关知识

Redis的默认端口号为6379

默认16个数据库,类似数组下标从0开始,初始默认使用0号库。
使用命令select 来切换数据库。 如: select 8。
统一密码管理,所有库同样密码。

dbsize查看当前数据库的key的数量。
flushdb清空当前库。
flushall通杀全部库。

Redis是单线程+多路IO复用技术。
多路复用是指使用一个线程来检查多个文件描述符( Socket )的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)。

串行 VS 多线程+锁 ( memcached) VS 单线程+ 多路IO复用(Redis)
Redis与Memcache三点不同:

  • 支持多数据类型
  • 支持持久化
  • 单线程+多路IO复用

Redis中的数据类型

1.png

redis 键(key)

keys *:查看当前库所有key (匹配 : keys *1)

2.png

exists key:判断某个key是否存在。
type key:查看你的key是什么类型。
del key:删除指定的key数据,

unlink key:根据value选择非阻塞删除。仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作。。
expire key 10:10 秒钟,为给定的key设置过期时间,
ttl key:查看还有多少秒过期, -1表示永不过期, -2表示已过期。

select命令切换数据库,
dbsize查看当前数据库的key的数量。
flushdb清空当前库。
flushall通杀全部库

Redis字符串(String)

String是Redis 最基本的类型,一个key对应一个value。
String类型是二进制安全的。 意味着Redis的string可以包含任何数据。比如jpg图片
或者序列化的对象。
String类型是Redis最基本的数据类型, 一个Redis中字符串value最多可以是512M。

常用命令

set、get等

set :添加键值对。
当设置过值的key再被设置一个新的值时,新的值会覆盖旧的。

3.png

*NX:当数据库中key不存在时,可以将key-value添加数据库。
*XX:当数据库中key存在时,可以将key-value添加数据库,与NX参数互斥。
*EX: key的超时秒数。
*PX: key 的超时毫秒数,与EX互斥。

get 查询对应键值.
append 将给定的< value >追加到原值的末尾,
strlen 获得值的长度。
setnx 只有在key不存在时设置 key的值.

增减建的值

incr

将key中储存的数字值增1。
只能对数字值操作,如果为空,新增值为10

decr

将key中储存的数字值减1。
只能对数字值操作。如果为空,新增值为-1。

inrjy/ decrby <步长> 将key中储存的数字值增减。自定义步长。

注意:
incr和decr是原子操作
而java中的i++则不是原子操作

mset、mget和msetnx

mset ....

同时设置一个或多个key-value对。

4.png

mget

同时获取一个或多个value。

5.png

msetnx

它是原子性的
同时设置一个或多个 key-value对,当且仅当所有给定key都不存在时,才成功。

6.png

有一个是之前存在的则不成功

7.png

getrange、setrange

getrange <起始位置><结束位置>

获得值的范围,类似java中的substring ,前包,后包

setrange <起始位置>

用覆写所储存的字符串值,从<起始位置:开始(索引从0开始)。

8.png

设置过期时间

setex <过期时间>

设置键值的同时,设置过期时间,单位秒。

9.png

替换旧值

getset

以新换旧,设置了新值同时获得旧值。

10.png

String的数据结构

String的数据结构为简单动态字符串(Simple Dynamic String,縮写SDS)。是可以修改的字符串,内部结构实现上类似于Java的ArrayList ,采用预分配冗余空间的方式来减少内存的频繁分配。

11.png

如图中所示,内部为当前字符串实际分配的空间capacity一般要高于实际字符串长度len。当字符串长度小于1M时,扩容都是加倍现有的空间,如果超过1M,扩容时一次只会多扩1M的空间。需要注意的是字符串最大长度为512M。

到此这篇关于Redis 键和字符串常用命令的文章就介绍到这了,更多相关Redis 常用命令内容请搜索晓枫资讯以前的文章或继续浏览下面的相关文章希望大家以后多多支持晓枫资讯!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
11
积分
2
注册时间
2024-2-28
最后登录
2024-2-28

发表于 2025-8-21 20:14:28 | 显示全部楼层
感谢楼主分享。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表