第5课:string数据类型

string数据类型是redis最简单也是应用最多的数据类型
string类型是简单的key value结构,比如要存贮一个字符串,要先分配一个唯一key来标识这个字符串,然后把这个字符串挂在这个key下

应用方式:
假设有一个查询SQL速度很慢又经常会执行,而数据却变动不频繁,可以简单的用string类型做缓存
缓存方式也分两种,一种设置过期时间,一种不设置过期时间

设置过期时间:
key value time
用户请求过来,先查redis的对应key下是否有数据,如果有数据,直接返回,如果没有数据,查询SQL,把返回的结果写入key中,设置过期时间为time
设置过期时间是为了更新缓存中的数据,因为一般的业务中,数据肯定不会一成不变,如果没有过期时间,缓存中的数据一直不变,缓存的意义就不大了

不设置过期时间:
还有一种场景,用户需要实时看到最新的数据结果,这个时候,简单的通过上面步骤设置过期时间来缓存,在time范围内的数据变动不能实时返回给用户
用户请求过来,先查redis的对应key下是否有数据,如果有数据,直接返回,如果没有数据,查询SQL,把返回的结果写入key中
接下来,如果数据有删除或者任何更新操作,就删除对应的key下面的缓存数据
当用户再次请求对应数据时,会直接查SQL,然后把新的数据写入缓存,保证缓存中的数据总是最新的

上面两种场景都有一个前提,就是数据更新并不频繁,否则缓存命中率会很低,反而增加了系统负担,DB的压力也没有较好的减轻

相关命令:
1.set
set godeye www.godeye.org #设置godeye为www.godeye.org
set godeye 45      #设置godeye 为45 

2.get
get godeye  #获取godeye的值

3.setex
语法: setex key seconds value
解释:设置key的过期时间和值。过期时间seconds单位是秒。设置过期时间和值是原子操作,如果redis仅仅当做缓存,这个很命令很有用
setex user.2.age 2 14  #把user.2.age 的值设14 并且2秒后过期失效 

4.mset
语法:mset key value [key value ...]
解释:同时设置多个key-value
mset user.4.name lisi user.4.age 34  #设置user.4.name=lisi,user.4.age=34

5.mget
语法: mget key [key]
解释:批量获取key的值。程序一次获取多个值,可以减少网络连接损耗
mget user.4.name user.4.age user.4.std #批量获取存在key的值  
1) "lisi"   #user.4.name的值  
2) "34"     #user.4.age 的值  
3) "3"      #user.4.std 的值  

6.del
语法:del key [key]
解释:删除指定的key,返回删除key的个数
del user.7.age user.7.fri #删除多个key  

7.strlen
语法:strlen key
解释:获取key中所存储值的长度
strlen user.1.name  #user.1.name 长度

打赏  如对你有帮助,请我喝杯咖啡吧!