论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
redis(4)String字符串
redis(4)String字符串
花瓣小跑
金牌会员
|
2023-2-25 00:25:18
|
显示全部楼层
|
阅读模式
楼主
主题
854
|
帖子
854
|
积分
2562
前言
Redis中有5大数据类型,分别是字符串String、列表List、集合Set、哈希Hash、有序集合Zset,本篇介绍Redis的字符串String
Redis字符串
String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value
String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化对象。
Stirng类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M
常用命令
set 添加键值对
*EX:key的超时秒数
*PX:key的超时毫秒数,与EX互斥
*NX:当数据库中key不存在时,可以将key-value添加数据库
*XX:当数据库中key存在时,可以将key-value覆盖原来的数据添加到啊数据库,与NX参数互斥
get 查询对应键值
append key value 将给定的value追加到原值的末尾
strlen key 获得值的长度
setnx key value 只有在key不存在时,设置key的值
incr key
将key中存储的数字值加1
只能对数字值操作,如果为空,现在新增值为1
decr key;
将key中存储的数字值减1
注意:incr是对存储在指定key的数值执行原子的加1操作
所谓原子操作是指不会被线程调度机制打断的操作
这种线程一旦开始,就一直运行到结束,中间不会有任何切换到另一个线程的操作
(1) 在单线程中,能够在单挑指令中完成的操作都可以认为是"原子操作",因为中断只能发生于指令之间。
(2) 在多线程中,不能被其他进程(线程)打断的操作就叫原子操作
Redis单命令的原子性主要得益于Redis的单线程
mset 同时设置1个或多个key-value对
mget 同时获取1个或多个value
msetnx 同时设置1个或多个key-value对,当且仅当所有给定key都不存在
getrange 获得值的范围,类似java中的substring,前包,后包
setrange 用 覆写所存储的字符串值,从开始(
索引从0开始
)
setex 设置键值的同时,设置过期时间,单位为秒
getset 以旧换新,设置新值同时获得旧值
String数据结构
String 的数据结构为简单动态字符串 (Simple Dynamic String, 缩写 SDS),是可以修改的字符串,内部结构实现上类似于 Java 的 ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配.
如图中所示,内部为当前字符串实际分配的空间 capacity 一般要高于实际字符串长度 len。当字符串长度小于 1M 时,扩容都是加倍现有的空间,如果超过 1M,扩容时一次只会多扩 1M 的空间。需要注意的是字符串最大长度为 512M。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
花瓣小跑
金牌会员
这个人很懒什么都没写!
楼主热帖
【电脑配置】新电脑买回来怎么配置? ...
数理逻辑第4-5章
使用axios发送post请求上传文件(multip ...
20天等待,申请终于通过,安装和体验In ...
计算机网络原理(谢希仁第八版)第六章课 ...
最简单易懂的ios p12证书 和描述文件的 ...
应急响应(总)
Java代码中如何判断一个字符串中是否包 ...
【网络攻防】常见的网络攻防技术——黑 ...
.NET 分布式缓存中的发布和订阅模式 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表