redis学习记录阶段二 (数据结构的基本使用-linux-1)
阶段二目标:
- 环境搭建
- 基本语法,用法
- 特性学习
- 官方文档阅读
- 权威书籍阅读
目标二: 基本语法,用法
语法使用
一.字符串string
简单的key-value类型,其中value不仅仅可以说String类型,还可以是int类型的
常见场景:
微博数,粉丝数
常用命令
- Set: 设置指定key的值
- Get:获取指定key的值
- Incr: 将key中存储的数字+1
- Decr: 将key中存储的数字-1
- Mget: 获取所有给定key的值
- SetNX|set: 只有键key不存在的时候才会设置key的值
示例:
二.Hash
一个string类型的field和value的映射表
常见场景:
存储数据变更,存储用户信息,商品信息,订单信息等
常用命令
- Hget: 获取存储在hash中field(指定字段)的值
- Hset: 将哈希表指定key中的field的值设置为指定值
- Hgetall:获取hash中指定key的所有的字段和值
示例:
三.List
链表数据结构
常用场景
粉丝列表,微博关注列
常用命令
- Lpush: 将一个或多个值插入到列表头部
- Rpush: 在列表汇总添加一个或多个值
- Lpop: 移出并获取列表的第一个元素
- Rpop: 移出列额表最后一个元素,其返回值为移出的元素
- Lrange: 获取所有(一个或多个)给定key的值
示例:
四.Set
set集合, 一堆不重复值的组合,可以用于存储一些集合性的数据
常用场景:
共同关注,共同喜好,二度好友
常用命令
- Sadd: 想集合汇总添加一个或多个成员
- Spop: 移除并返回集合中的一个随机元素
- Smembers: 返回集合中的所有成员
- Sunion: 返回所有给定集合的并集
示例:
五.Sorted set
Sorted set和set类似,区别在于Sorted set 插入是有序的,额外提供一个优先级的参数类进行排序
常用场景
各种排行榜,按用户的投票和时间排序
常用命令
- Zadd: 添加一个或多个成员,或者是更新一集存在成员的分数(排序的优先级)
- Zrange: 通过索引区间返回有序集合中指定区间内的成员 (可以传递WITHSCORES选项,将元素的分数与元素一起返回)
- Zrem: 移除有序集合中的一个或多个成员
- Zcard: 获取有序集合的成员数
示例:
六.GEO
3.2版本开始支持的数据结构GEO(地理位置)
常用场景
LBS应用开发(基于位置的服务)
常用命令
- GEOADD: 增加地理位置的坐标, 可以批量添加地理位置
- GEODIST: 获取两个地理位置的距离
- GEOHASH: 获取地理位置的geohash值
- GEOPOS: 获取指定位置的坐标,可以批量获取多个地理位置的坐标
- GEORADIUS: 根据给定地理位置坐标获取指定范围内的地理位置集合
- GEORADIUSBYMEMBER: 根据给定成员的位置获取指定返回内的位置信息集合
示例: