Redis(2)- 常用数据结构

1.Redis常用数据类型结构

1.1.字符串类型

设置、获取、删除字符串

字符串指令
序号 作用 指令 参数 示例
1 截取字符串内容 GETRANGE 截取范围的起始下标 redis > GETRANGE email 0 3
2 获得字符串长度 STRLEN   redis > STRLEN email
3 设置带有过期时间(秒)的KEY_VALUE SETEX 时间 redis > SETEX city 5 Beijing
4 设置带有过期时间(毫秒)的KEY_VALUE FSETEX 时间 redis > FSETEX city 5 Beijing
5 设置多个KEY_VALUE MSET   redis > MSET username lisi age 18
6 获得多个VALUE MGET   redis > MGET username age
7 在字符串结尾追加内容 APPEND 添加内容

redis > SET temp ABCD

redis > APPEND temp 1234

8 数字自增加1 INCR  

redis > INCR num

9 数字加上指定的整数值 INCRBY 数值

redis > INCRBY num 25

10 数字加上指定的浮点数 INCRBYFLOAT 数值

redis > INCRBYFLOAT num 3.5

11 数字自增减1 DECR 数值

redis > DECR num

12 数字减去指定的整数值 DECRBY 数值

redis > DECRBY num 10

 

 

 

 

 

1.2.哈希类型

哈希类型可以通俗的理解为字典类型

哈希指令
序号 作用 指令 参数 示例
1 设置哈希表字段 HSET 字段和值

redis > HSET student name lisi

redis > HSET student age 14

2 设置哈希表多个字段 HMSET 字段和值 redis > HMSET student name lisi age 14
3 获得哈希表字段值 HGET 字段

redis > HGET student name

redis > HGET student age

4 获得多个哈希表字段值 HMGET 字段 redis > HMGET student age name
5 获得所有哈希表字段值 HGETALL   redis > HGETALL student
6 获得所有哈希表字段名 HKEYS    redis > HKEYS student
7 获得哈希表中的字段数量 HLEN   redis > HLEN student
8 判断哈希表中是否存在某个字段  HEXISTS 字段  redis > HEXISTS student name
9 获得哈希表的所有字段值 HVALS   redis > HVALS student
10 删除哈希表的字段  HDEL 字段 redis > HDEL student name age
11 让哈希表中某个字段值加上指定的整数值 HINCRBY 数值 redis > HINCRBY student age 10
12 让哈希表中某个字段值加上指定的浮点数  HINCRBYFLOAT 数值 redis > HINCRBYFLOAT student age 0.5

注意:哈希字段没有减法,通过加法在数值前面加-号实现减法功能

 

 

 

 

 

 

1.3.列表类型

Redis列表和python列表一样,元素可以重复

 

 

列表指令
序号 作用 指令 参数 示例
1 获得列表长度 LLEN  

redis > LLEN dname

 

2 获得列表某个元素 LINDEX 下标

redis > LINDEX dname 0

获取下标为0的元素

3 在某个位置插入元素 LINSERT

BEFORE

AFTER

redis > LINSERT dname BEFORE 秘书处 董事会

在秘书处前面插入董事会

redis > LINSERT dname AFTER 董事会 董事长

在董事会后面插入董事长

4 删除列表最左边的元素 LPOP   redis > LPOP dname
5 删除列表最右边的元素 RPOP   redis > RPOP dname
6 删除列表某个元素 LREM  

redis > LREM student zhangsan

删除张三

redis > LREM student 1 lisi

删除第1个李四,这个1不是索引序号,第几次出现

7 声明列表/(声明同时默认:向列表右侧添加内容) RPUSH   redis >RPUSH class first
8 向列表最左侧添加内容 LPUSH  

redis >RPUSH subject 语文 数学 英语

redis >LPUSH subject 政治 历史 物理

redis >lrange subject 2 5

政治、语文、数学、英语

 这个地方容易理解错,LPUSH左侧添加,同时添加多个时,最后一个添加的才是左侧第一个

 

 

 

 

 

1.4.集合类型

Redis集合元素不可以重复,Redis集合中的元素根据hash算法存放的,没有下标这么一说

 

集合指令
序号 作用 指令 参数 示例
1 声明集合 sadd  

redis > sadd empno 8001

redis > sadd empno 8002

 
2 输出集合元素 smembers  

redis > smembers empno

3 获得集合长度 scard   

redis > scard empno

4 判断是否含有某个元素 sismember   redis > sismember empno 8001
5 删除元素 srem   redis > srem empno 8001
6 随机删除并返回集合的某个元素 spop  

redis > srem empno

7 随机返回集合中的元素 srandmember  

redis > srandmember empno 5

随机返回empno集合中5个元素

 

 

 

1.5.有序集合类型

 

有序集合指令
序号 作用 指令 参数 示例
1 声明有序集合 zadd  

redis > zadd keyword 0 "鹿晗"

2 按照分数值降序输出集合元素 zrevrange  

redis > zrevrange keyword 0 -1

3 元素分数值增加 zincrby  

redis > zincrby keyword 1 "鹿晗"

4 获得有序集合长度 zcard    redis > zcard keyword
5 查询某个分数值区间内的元素数量 zcount   

redis > zcount keyword 5 10

查询分数值在5-10区间内的元素数量

6 返回元素的分数值 zscore    redis > zscore keyword "马云"

 

7 按照分数值升序输出集合元素 zrange  

redis > zrange keyword 0 -1

8 获得分数值区间内的集合内容(升序) zrangebyscore  

redis > zrangebyscore keyword 5 10

大于等于5小于等于10区间内元素升序输出

redis > zrangebyscore keyword 5 (10

大于等于5小于10区间内元素升序输出

redis > zrangebyscore keyword (5 10

大于5小于等于10区间内元素升序输出

redis > zrangebyscore keyword 10000 +inf

大于等于10000到正无穷区间内元素升序输出

redis > zrangebyscore keyword -inf 10

负无穷到10区间内元素升序输出

9 获得分数值区间内的集合内容(降序) zrevrangebyscore  

redis > zrevrangebyscore keyword 10 5

5-10区间内(闭区间)元素降序输出

10 获得元素的升序排名(从0开始) zrank  

redis > zrank keyword "鹿晗"

11 获得元素的降序排名(从0开始) zrevrank   redis > zrevrank keyword "鹿晗"
12 删除有序结合中的元素 zrem    redis > zrem keyword "马云" "鹿晗"
13 删除排名区间内的元素 zremrangebyrank    redis > zremrangebyrank keyword 0 0
14 删除分数值区间内的元素 zremrangebyscore    redis > zremrangebyscore keyword -inf (101

 

 

 

 

 


2.Redis中常用命令

Redis的Key命令

Key命令

序号 作用 指令 参数 示例
1 删除记录 del  

redis > del keyword

2 判断是否存在某个key exists  

redis > exists empno

3 设置记录过期时间(秒) expire  

redis > expire empno 5

4 设置记录过期时间(毫秒) pexpire  

redis > pexpire empno 5

5 设置记录的过期时间秒(UNIX时间戳) expireat  

redis > expire empno 1652339100

6 设置记录的过期时间毫秒(UNIX时间戳) pexpireat  

redis > zadd keyword 0 1652339100000

7 把记录迁移到其他逻辑库 move  

redis > move empno 1

8 修改key名称 rename   redis > rename empno emp
9 移除过期时间 persist   redis > rename empno emp
10 判断value数据类型 type   redis > rename empno emp

 

 

posted @ 2022-05-26 19:07  葛老头  阅读(78)  评论(0编辑  收藏  举报