网站备案vpn注销,那些网站可以做问答,西安企业网站建设模板,wordpress+代码行号Redis学习笔记 基础语法
1.数据类型
String: 最基本的类型#xff0c;可以存储任何数据#xff0c;例如文本或数字。示例值为 hello world。Hash: 用于存储键值对#xff0c;适合存储对象或结构体。示例值为 {name: Jack, age: 21}。…Redis学习笔记 基础语法
1.数据类型
String: 最基本的类型可以存储任何数据例如文本或数字。示例值为 hello world。Hash: 用于存储键值对适合存储对象或结构体。示例值为 {name: Jack, age: 21}。List: 有序的字符串列表适用于队列等场景。示例值为 [A - B - C]。Set: 不重复的元素集合适用于需要唯一性的场景。示例值为 {A, B, C}。SortedSet: 有序且唯一的元素集合每个元素有一个对应的分数用于排序。示例值为 {A: 1, B: 2, C: 3}。GEO: 用于处理地理数据比如位置的经纬度。示例值为 {A: (120.3, 30.5)}。Bitmap: 用于存储位图可以支持高效的位运算。示例值为 011011010110101011。HyperLog: 一种用于基数估算的数据结构节省空间。示例值为 011011010110101011。 2.通用命令 help 数据类型得到相应数据类型会用到的命令.KEYS ***???获取符合模糊匹配的所有关键字?“代表一个字符”*代表任意个字符。del [keyname] [keyname]....删除key。EXISTS [keyname]查询key是否存在。EXPIRE [keyname]设置过期时间。TTL [keyname]查看过期时间-1表示永久有效-2表示不存在这个key。 3.String类型 SET [key] [value]: 添加或修改一个已有的String类型的键值对。GET [key]: 根据key获取String类型的value。MSET [key1 value1] [key2 value2] ...: 批量添加多个String类型的键值对。MGET [key1] [key2] ...: 根据多个key获取多个String类型的value。INCR [key]: 让一个整型的key自增1。INCRBY [key] [increment]: 让一个整型的key自增并指定步长例如INCRBY num 2让num值自增2。INCRBYFLOAT [key] [increment]: 让一个浮点类型的数字自增并指定步长。SETNX [key] [value]或者SET [key] [value] NX: 添加一个String类型的键值对前提是这个key不存在否则不执行。SETEX [key] [seconds] [value]或者SET [key] EX [value]: 添加一个String类型的键值对并且指定有效期单位秒。 4.key的层级结构
由于Redis中没有表这一结构于是我们会需要key按照项目名:业务名:类型:主键id的方式命名但并不固定比如mysql里面的shopping库中的goods表的id为1的数据的key可以表示为shopping:goods:1而这一个key对应的value可以是结构体(对象)序列化后的json字符串,这里值得一提的是如果你用的RDM的redis图形化界面这样的命名在图形化界面里面会以树的形式出现显示很清晰但是Datagrip这类软件貌似并不支持这个功能。
5.Hash类型
key
├── field1: value1
├── field2: value2
└── field3: value3
...哈希类型它的value是一个无序字典可以理解为key里面又存储了多个key的键值对相较于上面json字符串形式存储数据有着一定的优势那就是对json字符串中的单个数据进行修改很不方便而hash类型则可以对单个字段进行CRUD。
常用命令: HSET [key] [key] [field1] [value1] [field2] [value2]...: 添加或修改 hash 类型 key 的 field 的值。注hmset也行不过已经弃用了.HGET [key] [field]: 获取一个 hash 类型 key 的 field 的值。HMGET [key] [field1] [field2] ...: 批量获取多个 hash 类型 key 的 field 的值。HGETALL [key]: 获取一个 hash 类型的 key 中的所有 field 和 value。HKEYS [key]: 获取一个 hash 类型的 key 中的所有 field。HVALS [key]: 获取一个 hash 类型的 key 中的所有 value。HINCRBY [key] [field] [increment]: 让一个 hash 类型 key 的指定 field 值增加并指定步长。HSETNX [key] [field] [value]: 添加一个 hash 类型 key 的 field 的值前提是这个 field 不存在否则不执行。 6.List类型
可以看作是一个双向队列结构
特征
有序元素可以重复支持插入和删除操作查询速度一般
常用命令 LPUSH [key] [element] ...: 向列表左侧插入一个或多个元素。LPOP [key]: 移除并返回列表左侧的第一个元素没有则返回 nil。RPUSH [key] [element] ...: 向列表右侧插入一个或多个元素。RPOP [key]: 移除并返回列表右侧的第一个元素。LRANGE [key] [start] [end]: 返回一段角标范围内的所有元素。BLPOP [key] [timeout]: 与 LPOP 类似在没有元素时等待指定时间。BRPOP [key] [timeout]: 与 RPOP 类似在没有元素时等待指定时间。 7.Set类型
相当于C的 unordered_set 或者Java的HashSet可以用于查看共同好友等。
特征
无序元素不可重复查找快支持交集、并集、差集等功能
常用命令 SADD [key] [member] ...: 向 set 中添加一个或多个元素。SREM [key] [member] ...: 移除 set 中的指定元素。SCARD [key]: 返回 set 中元素的个数。SISMEMBER [key] [member]: 判断一个元素是否存在于 set 中。SMEMBERS [key]: 获取 set 中的所有元素。SINTER [key1] [key2] ...: 求 key1 与 key2 的交集。SDIFF [key1] [key2] ...: 求 key1 与 key2 的差集。SUNION [key1] [key2] ...: 求 key1 和 key2 的并集。 8.SortedSet类型
可以理解为C中的Map,可以用于排行榜系统
特征
可排序元素不重复查询速度快
常用命令 ZADD [key] [score] [member]: 添加一个或多个元素到 sorted set如果已存在则更新其 score 值。ZREM [key] [member]: 删除 sorted set 中的指定元素。ZSCORE [key] [member]: 获取 sorted set 中指定元素的 score 值。ZRANK [key] [member]: 获取 sorted set 中指定元素的排名。ZCARD [key]: 获取 sorted set 中的元素个数。ZCOUNT [key] [min] [max]: 统计 score 值在指定范围内的所有元素的个数。ZINCRBY [key] [increment] [member]: 让 sorted set 中的指定元素自增步长为指定的 increment 值。ZRANGE [key] [min] [max]: 按照 score 升序排序获取指定排名范围内的元素在这里查询的排名的范围为(min, max]ZREVRANGE [key] [min] [max]: 按照 score 降序排序。ZRANGEBYSCORE [key] [min] [max]: 按照 score 排序获取指定 score 范围内的元素。ZDIFF、ZINTER、ZUNION: 求差集、交集、并集。 结语
以上总结了关于redis的基本的数据结构和基本数据结构常用的有关命令希望对你也会有帮助。