企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## Redis专题一:数据类型 [TOC] > Redis是一种非关系型数据库,使用key-value键值对存储方式 > key-value可以是string, list, hashes, or ordered sets等数据类型 ### strings 存储字符串,数值类型 | 命令 | 解释 | 例子 | | --- | --- | --- | | `SET key value`| 存入key-value | `SET server:name "fido"`| | `GET key value`| 获取指定key的value | `GET server:name ` <br> `=> "fido"`| | `EXISTS key`| 判断是否存在key,1表示在,0表示不存在 | ` EXISTS server:name ` <br> `=> 1`| | `DEL key`| 删除指定key | `DEL server:name`| | `INCR key`| 在指定key的value值上加上1,针对的是数值类型 |`SET connections 10` <br> `INCR connections ` <br> `=> 11`| | `INCRBY key step`| 在指定key的value值上加上step,针对的是数值类型 | `SET connections 1`<br> `INCRBY connections 100 ` <br> `=> 101`| | `DECR key`| 在指定key的value值上减上1,针对的是数值类型 |`SET connections 10` <br> `DECR connections` <br> ` => 9`| | `DECRBY key step`| 在指定key的value值上减上step,针对的是数值类型 | `SET connections 100`<br> `DECRBY connections 10` <br> ` => 90`| ### list 有序的列表,可以在列表头和尾插入删除元素 | 命令 | 解释 | 例子 | | --- | --- | --- | | `RPUSH key value [value ...]`| 在列表尾部插入一个或多个新元素 | ` RPUSH friends "Alice"`<br> 或` RPUSH friends "Sam" "Alice"`| | `RPOP key `| 删除列表尾部元素,并返回该元素 | ` RPOP friends` <br> ` => "Alice"`| | `LPUSH key value [value ...]`| 在列表头部插入新元素 | ` LPUSH friends "Sam"`<br> 或` LPUSH friends "Sam"`| | `LPOP key `| 删除列表头部元素,并返回该元素 | ` LPOP friends` <br> ` => "Sam"`| | ` LLEN key `| 返回列表的长度| ` LLEN friends`| | `LRANGE key start end`| 返回列表的子集,-1代表最后一个元素 | ` LPUSH friends "Sam" "Alice" "Bob"`<br> ` LRANGE friends 0 -1`<br> ` =>` <br> ` 1) "Sam" ` <br> ` 2) "Alice" ` <br> `3) "Bob"`| ### sets 与list一样,但是是无序且不重复的 | 命令 | 解释 | 例子 | | --- | --- | --- | | `SADD key value [value ...]`| 向set中插入一个或多个新元素 | ` SADD superpowers "flight"`<br> 或 `SADD superpowers "x-ray vision" "reflexes"`| | `SREM key value `| 删除指定key的value, 并返回1表示元素村在,返回0表示元素不存在 | ` SREM superpowers "reflexes" ` <br> `=> 1`| | `SISMEMBER key value`| 判断set中是否存在value,1表示在,0表示不存在 | ` SISMEMBER superpowers "flight" ` <br> ` => 1`| | `SMEMBERS key `|返回set集中所有元素构成的列表 | ` SMEMBERS superpowers `<br> `=> ` <br> `1) "flight" ` <br> `2) "x-ray vision"`| | `SUNION key1 key2`| 对2个set做交集运算 | `SADD superpowers "x-ray vision"`<br>`SADD birdpowers "pecking"`<br>`SADD birdpowers "flight"`<br>`SUNION superpowers birdpowers`<br> `=> ` <br> ` 1) "pecking" ` <br> `2) "x-ray vision" ` <br> ` 3) "flight"`| | `SPOP key number`| 删除number个元素,并返回被删除的元素列表 | ` SADD letters a b c d e f`<br> `SPOP letters 2 ` <br> ` => ` <br> `1) "c" ` <br> ` 2) "a"`| ### sorted sets 与set一样,但是是按照score排序的 | 命令 | 解释 | 例子 | | --- | --- | --- | | `ZADD key score value`| 向set中插入指定score的新元素 |`ZADD hackers 1940 "Alan "`| | `ZADD key start end`| 获取指定range的元素列表 |`ZADD hackers 1940 "Alan "`<br> `ZADD hackers 1906 "Grace "`<br> `ZADD hackers 1953 "Richard "`<br> `ZADD hackers 1965 "Yukihiro "`<br> ` ZADD hackers 1916 "Claude "`<br> ` ZADD hackers 1969 "Linus "`<br> ` ZADD hackers 1957 "Sophie "`<br> ` ZADD hackers 1912 "Alan "`<br> ` ZRANGE hackers 2 4`<br> ` => ` <br> `1) "Claude" ` <br> `2) "Alan" ` <br> `3) "Richard"`| ### Hashes 用于存储包含多个成员字段的对象,如一个用户包含名字、年龄、性别等 | 命令 | 解释 | 例子 | | --- | --- | --- | | `HSET key field value`| 向对象的指定的一个字段赋值 |`HSET user:1001 name "John Smith"`| | `HMSET key field value [field value ...]`| 向对象的指定的多个字段赋值 |` HMSET user:1001 name "Mary Jones" age 20`| | `HGETALL key`| 返回对象 | ` HMSET user:1001 name "Mary Jones" age 20`<br> ` HGETALL user:1001`<br> `=> `<br> `1) "name" `<br> `2) "Mary Jones"` <br> `3) "age" `<br> `4) "20" ` | | `HGET key field`| 获取对象指定字段的value值 |` HGET user:1001 name`<br> ` => "Mary Jones"`|