(一)、全局命令
Redis的常见全局命令包括:1 .检查所有密钥keys * 2.密钥总数dbsize3。 检查密钥是否存在,如果密钥存在则返回1,如果不存在则返回0
exists key 4.删除密钥del key [密钥. ]5.密钥过期时间expire key seconds TTL命令返回密钥的剩余过期时间。 有三个返回值。
大于等于0的整数:密钥的剩余到期日。 --1 :密钥未设定有效期限。 -2:键中不存在
(二)、字符串
1.设定值
除了set选项之外,Redis还提供了两个命令: setex和setnx。
这些角色与ex和nx选项相同。 以下示例显示了set、setnx和setxx之间的差异。
setnx和setxx在实际使用中有什么应用场景吗? 以setnx命令为例,由于Redis的单线程命令处理机制,多个客户端同时执行setnx key value,根据setnx的特性只有一个客户端可以设置成功时,setnx是分布式锁定的实现方案和
典型场景:
如果没有从Redis获取用户信息,则需要从MySQL获取,将结果写回到Redis,并添加1小时(3600秒)的有效期限。
2 .获取值
get key 3.批量设定值
设置密钥值[密钥值. ]4.批量获取值
mget key [key .] 5.计数
典型场景:
例如,笔者团队的视频播放计数系统使用Redis作为视频播放计数的基础组件,每次用户播放视频时,对应的视频播放数都会增加1。
长视频计数器(长id ) {
key='视频:播放计数: ' id;
返回光盘(密钥;
{1}在很多APP上,从安全角度考虑,每次登录时都让用户输入手机的验证码,确认是否是用户本人。
但是,要限制用户每分钟获取验证码的频率,以防止消息界面频繁访问。 例如,一分钟不能超过五次。
上面是常用的指令,下面是不常用的指令:
1 .添加值
append key value 2.字符串长度
strlen key 3.设置并恢复原始值
getset key value 4.设定指定位置的文字
5 .获取部分字符串
获取范围密钥开始结束
127.0.0.1:6379 getrangeredis 01 ' be '
(三)、mldlz/h1
1 .设定值设置关键字段值
127.0.0.1:6379主机用户:1名称汤姆
(integer ) 12 .获取值
获取密钥场
127.0.0.133606379 h获取者:1名称
' tom'3.删除字段
4 .计算字段的个数
海伦基
127.0.0.1:6379高清用户:1
(integer ) 35.field-value的批量设置或获取
6 .判断字段是否存在
h现有密钥场
127.0.0.133606379 hexistsuser :1名称
(integer ) 17 .获取所有字段
钥匙钥匙
127.0.0.1:6379 hkeys用户:1
1 )“名称”
2 ) ) age )。
3 ) city'8)8.获取所有的值
HA LS密钥
127.0.0.1:6379 hva lsuser :1
1 ) mldbl )的
2 ) ) 12 )。
3 ) tianjin'9)9.获取所有字段值
10.hincrby hincrbyfloat
亨利凯菲尔德
hincrbyfloat key fieldhincrby和hincrbyfloat就像incrby和incrbyfloat命令一样,但范围是filed。
11 .计算值的字符串长度
h条纹键场
127.0.0.1:6379 hstrlenuser :1名称
(integer ) 3哈希数据类型通常用于存储用户信息。
散列存储结构
1 .本机字符串类型:每个属性一个键
设置用户:1:名称汤姆
set用户:1: age 23
set user:1:city beijing的优点:简单直观,每个属性都支持更新操作。 缺点:由于密钥过多、内存使用量大,并且用户信息聚集性差,此方案通常不在生产中使用。 2 .序列化字符串类型:序列化用户信息并用一个键保存
setuser :1序列化(userinfo )的优点:如果简化编程,适当使用序列化,可以提高内存的使用效率。 优点:序列化和序列化有一定的开销,同时每次更新属性时都需要取出所有数据进行序列化,更新后序列化为Redis。 3 .哈希类型:每个用户属性使用一组字段值,但只保存一个密钥
HM setuser :1 Nametomage 23 City Beijing的优点:简单直观,使用合理可以减少内存容量的使用。 缺点:为了控制ziplist和hashtable两种内部散列编码的转换,hashtable会消耗更多的内存。