Redis系统学习-String

概念了解

Redis的String相当于java的ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配,从而提升效率。
(当字符串长度小于 1M 时,扩容都是加倍现有的空间,如果超过 1M,扩容时一次只会多扩 1M 的空间。需要注意的是字符串最大长度为 512M。)
Redis 所有的数据结构都是以唯一的 key 字符串作为名称。

常用命令

单key
set key value//插入,实际用的不多,缓存基本要与过期事件挂钩
setnx key value//若不存在则插入,若key已存在,则返回0,插入不成功。
exists key //是都存在,存在返回1
del key//删除key
get key//获取key

批量
mget key1 key2 key3//返回一个列表
mset key1 boy key2 girl key3 taijian

过期处理
这个具体后续单独
一开始,设置插入某个key 和 设置过期(expire key 5 单位s)时间是分开的,这样就不具备原子性,当插入了key之后,设置失效时间失败(原因很多),可能会影响后续流程。
所以大牛们,新加了一个命令:setex key value seconds ,一次性原子搞定,要么成功,要么失败。

额外的惊喜
有时候我们在项目中需要记录一个计数值count,若按照上面的命令,需要先get key 再value++ 然后set key。这种会发生会发生多线程问题等。
大牛们干脆设置一个新命令,incr(+1) incrby number
在这里插入图片描述
这个就很厉害了,有很多的封装运用,Spring 的 RedisAtomicLong,统计count,还是线程安全的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值