一、redis核心数据结构
常见的数据结构 string hash set list zset(有序集合)
1 、string
1.1 String建单使用
string单值存储
set key value
get key
1)set user1:value(json格式)
2)mset user1:name 张三 user1:age 24
mget user1:name user1:age
分布式锁
setnx proctud:10001 true //返回1标识锁成功
setnx proctud:10001 true //返回0表示锁成功
。。。执行业务操作
delet proctud:10001 //执行完业务操作释放锁
setnx protucd 1001 true ex 10 nx 防止程序意外中断出现死锁
1.2 String的应用场景
文章计数器
INCR irticle:read{文章id}
get irticle:read{文章id}
web集群session共享
spring session 和redis session 共享
分布式系统全局id
在本地内存中生成id ,当id到达1000后去和redis做交互
incrby order id 1000 //redis批量生成序列号提升性能
问题:会出现id不连续的问题
2、hash结构
2.1 对象缓存
hash是一个双层map的结构
2.2hash的应用场景
电商为例:
商品id为key
用户id为fied
商品数value
购物车操作
添加商品:hset car:1001 108 2
增加商品数量: hincryby car:1001 108 2
商品总数:hlen car:1001
删除商品:hdel car:1001 108
hash的优点:
缺点:不适合在集群环境下大量使用 ,过期功能不能使用在field上面
优点:
1)同类数据归类整合存储,方便数据管理
2)相比string 消耗内存和cpu更小
3)相比string 更加节省空间
List
Set
应用场景
朋友圈点赞收藏