|NO.Z.00006|——————————|BigDataEnd|——|Hadoop&Redis.V06|——|Redis.v06|数据类型.v01|

一、Redis数据类型和应用场景
### --- [Redis数据结构及过期机制]

~~~     [Redis数据类型概述]
~~~     [Redis常用数据类型]
~~~     [Redis不常用数据类型] 
### --- redis数据类型和应用场景

~~~     Redis是一个Key-Value的存储系统,使用ANSI C语言编写。
~~~     key的类型是字符串。
### --- value的数据类型有:

~~~     常用的:string字符串类型list列表类型、set集合类型、sortedset(zset)有序集合类型、hash类型。
~~~     不常见的:bitmap位图类型、geo地理位置类型。
~~~     Redis5.0新增一种:stream类型
~~~     注意:Redis中命令是忽略大小写,(set SET),key是不忽略大小写的 (NAME name
二、Redis的Key的设计
### --- Redis的Key的设计

~~~     用:分割
~~~     把表名转换为key前缀, 比如: user:
~~~     第二段放置主键值
~~~     第三段放置列名
useid username password email
9 zhangf 111111 zhanggf
### --- 比如:用户表user, 转换为redis的key-value存储
~~~     表示明确:看key知道意思
~~~     不易被覆盖

username 的 key: user:9:username
{userid:9,username:zhangf}
email的key user:9:email
三、string字符串类型
### --- string字符串类型

~~~     Redis的String能表达3种值的类型:字符串、整数、浮点数 100.01 是个六位的串
~~~     常见操作命令如下表:
命令名称   命令描述
set set key value 赋值
get get key 取值
getset getset key value 取值并赋值
setnx setnx key value 当value不存在时采用赋值
set key value NX PX 3000 原子操作,px 设置毫秒数
append append key value 向尾部追加值
strlen strlen key 获取字符串长度
incr incr key 递增数字
incrby incrby key increment 增加指定的整数
decr decr key 递减数字
decrby decrby key decrement 减少指定的整数
### --- 应用场景:

~~~     key和命令是字符串
~~~     普通的赋值
~~~     incr用于乐观锁
~~~     incr:递增数字,可用于实现乐观锁 watch(事务)
~~~     setnx用于分布式锁
~~~     当value不存在时采用赋值,可用于实现分布式锁
### --- 举例:

setnx
[root@linux123 bin]# ./redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> setnx name zhangf                     # 如果name不存在赋值
(integer) 1
127.0.0.1:6379> setnx name zhaoyun                    # 再次赋值失败 
(integer) 0
127.0.0.1:6379> get name
"zhangf"
### --- set 
 
127.0.0.1:6379> set age 18 NX PX 10000                # 如果不存在赋值 有效期10秒
OK
127.0.0.1:6379> set age 20 NX                         # 赋值失败
(nil)
127.0.0.1:6379> get age                               # age失效
(nil)
127.0.0.1:6379> set age 30 NX PX 10000                # 赋值成功
OK
127.0.0.1:6379> get age
"30" 

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

posted on   yanqi_vip  阅读(16)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示