Redis学习(二)数据存储类型——String

String基本操作

添加、修改数据

set key value                        // 添加单个 key value
mset key1 value1 key2 value2 ...     //添加多个 key value

获得数据

get key            //获得单个数据
mget key1 key2     //获得多个数据

删除数据

del key

*注意:在Redis中操作成功返回的是(integer)1 , 操作失败返回的是(integer)0

获得数据字符个数(相当于string.length)

strlen key

追加信息到原始信息后面(存在就追加,不存在就新建)

append key value

 

单指令操作和多指令操作的选择(例mset和set)

如果单指令操作返回时间很久、单指令包含的数据量很大,那么就采用拆分进行单指令操作

如果单指令操作的返回时间很快、单指令包含得数据量小,那么就可以采用多指令操作

 

String扩展操作

场景1:

当数据库数量增加到一定程度时,我们会采用分库分表的策略,如果我们的主键生成策略是Auto_Increment策略时,并发量到达一定程度时可能就会出现相同主键的情况。

解决方式:

redis是单线程的,Redis的操作是原子性的,让Redis来控制id的生成方式,保证数据的唯一性

对数值进行操作:

增加

incr key                       // 对指定key的value值+1
incrby key increment           // 对指定key的value值+increment(只能为整数)的值
incrbyfloat key increment      // 对指定key的value值+increment(可以为小数)的值

减少

decr key                  // 对指定key的value值-1
decrby key increment      // 对指定key的value值-increment(可以为小数)的值

场景2:

微信投票功能,每天只能投一票

解决方式:

使用Redis的数据生命周期

设置数据具有指定的生命周期:

setex key seconds value              // 设置key的值为value值且在seconds秒后消失
psetex key millseconds value         // 设置key的值为value值且在millseconds毫秒后消失

问题3:

微博点赞功能,实时显示热点数据点赞数

解决方式1:

以 user:id:fans:20来表示 user表示用户,id表示用户id数据,fans表示显示得字段,20表示数据值,不用查数据库,加载速度很快。

约定key一般以 表名:主键名:主键值:字段名 得形式存放

解决方式2:

以Json字符串得形式存储在Redis中,快速返回

 

String的运行结果分析

  • 操作是否成功
(integer) 0     //    表示false
(integer) 1     //    表示true
  • 表示影响的行数
(integer) 3 表示影响了三个数据(例如del key1 key2 key3)
  • 数据没有查询到
(nil) null 表示没有查询到
  • 成功新建
OK

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值