Loading... # Redis 的四种存储结构 ## 1. 字符串 **key(string) -> value** ### 操作 ``` #设置变量 set name bilyooyam #取出变量 get name #删除变量 del name ``` ## 2. 列表 (存储的 value 可相同) **key -> [value,value,value]** ### 操作 ``` #从右边插入 rpush name linux1 rpush name linux2 #从左边插入 lpush name linux0 #取出指定的一个元素 lindex name 1 #输出指定范围的元素,0 -> -1 指的是取出所有元素 lrange 0 -1 #取出最左边的一个元素 lpop name #取出最右边的一个元素 rpop name ``` ### some Example ``` #两个列表之间的操作 #将列表的右侧POP,Push 进去另外一个列表 brpoplpush list2 list 1 #从左到右检查传入的列表,并对最先遇到的非空列表执行弹出操作 blpop list list2 1 ``` ## 3. 集合(存储的 value 不能相同,无序的) **key -> [value,value,value]** ### 操作 ``` #添加元素 sadd school little-school sadd school middle-school sadd school college #获取所有元素 smembers school #检查元素是否存在 sismember school #删除元素 srem school middle-school ``` ![终端操作记录图](https://gz-blog-storage-1252787757.cos.ap-guangzhou.myqcloud.com/usr/uploads/2024/05/17162840273318.jpg) ### example ``` #增加多个元素 sadd set-key a b c #删除多个元素 srem set-key a b #将一个元素移到另外一个散列 smove set-key set-key1 a ``` ## 4. 散列 (无序) **key->[key-value,key-value]** ### 操作 ``` #添加散列的键值对用 hset my-hash name bilyooyam hset my-hash age 24 hset my-hash sex male #显示所有键值对 hgetall my-hash #获取某一个键值对 hget my-hash name #删除某一个散列键值对 hdel my-hash name ``` ![散列的操作图](https://gz-blog-storage-1252787757.cos.ap-guangzhou.myqcloud.com/usr/uploads/2024/05/17162840273347.jpg) ### exmaple ``` #插入多个数值 hmset hash-key k1 v1 k2 v2 #获取多个数值 hmget hash-key k1 k2 #获取长度 hlen hash-key #获取 hash 的所有的键值 hkeys hash-key #检查键是否存在 hexists hash-key k1 ``` ## 5. 有序集合 (先输入分数然后再输入成员) **key->[key-value,key-value]** 里面的 key 表示为成员,value表示为分数 ## 操作 ``` #添加元素 zadd my-zset 60 Lily zadd my-zset 80 Mark zadd my-zset 90 bilyooyam #显示数据 zrange my-zset 0 -1 withscores #根据分数显示数据 zrangebyscore my-zset 0 80 withscores #删除数据 zrem my-zset bilyooyam ``` ![zset的操作图](https://gz-blog-storage-1252787757.cos.ap-guangzhou.myqcloud.com/usr/uploads/2024/05/17162840273357.jpg ) © Reprint prohibited Support Appreciate the author AliPayWeChat Like If you think my article is useful to you, please feel free to appreciate