2、数据类型

2024-01-02 09:52:26

目录

1、string类型

# 1. 添加值

# 2. 取值

# 3. 批量操作

# 4. 自增命令(自增1)

# 5. 自减命令(自减1)

# 6. 自增|自减指定数量

# 7. 设置值的同时,指定生存时间(每次向Redis中添加数据时,尽量设置生存时间)

# 8. 设置值,如果当前key不存在的话(存在的话,什么也不做,如果不存在,同set命令)

# 9. 在key对应的value后,追加内容(相当于字符串拼接)

# 10. 查看value字符串的长度

2、hash类型

# 1. 存储数据

# 2. 获取数据

# 3. 批量操作

# 4. 自增(指定自增的值)

# 5. 设置值(如果可以-field不存在,就正常添加,存在,什么也不做)

# 6. 检查filed是否存在

# 7. 删除key对应的field,可以删除多个

# 8. 获取当前hash结构中全部的field和value

# 9. 获取当前hash结构汇总全部的field

# 10. 获取当前hash结构中全部的value

# 11. 获取当前hash结构中field的数量

3、list类型

# 1. 存储数据

# 左插入

# 右插入

# 2. 存储数据

# 3. 修改数据(在存储数据时,指定好你的索引位置,覆盖之前索引位置的数据,index超出整个列表的长度会失败)

# 4. 出栈方式获取数据(左侧出栈,右侧出栈)

# 5. 获取指定索引范围内的数据(start从0开始,stop输入-1,代表最后一个数,-2代表倒数第二个数)

# 6. 获取指定索引位置的数据

# 7. 获取整个列表的长度

# 8.删除列表中的数据

# 9. 保留列表中的数据(保留你指定索引范围内的数据,超过索引范围被移除掉)

# 10. 将一个列表中的最后一个数据,插入到另外一个列表的头部位置

4、set类型

# 1. 存储数据

# 2. 获取数据(获取全部数据)

# 3. 随机获取一个数据(获取的同时,移除数据,count默认为1,代表弹出的数据

量)

# 4. 交集(获取多个set集合交集)

# 5. 并集(获取全部集合中的数据)

# 6. 差集(获取多个集合中不一样的数据)

# 7. 删除数据

# 8. 查看当前set集合中是否包含此值

5、zset类型

# 1. 添加数据(score必须是数值。member不允许重复)

# 2. 修改member的分数

# 3. 查看指定的member的分数

# 4. 获取zset中数据的数量

# 5. 根据score的范围查询member数量

# 6. 删除zset中的成员

# 7. 根据分数从小到大排序,获取指定范围内的数据

# 8. 根据分数从大到小排序,获取指定范围内的数据

# 9. 根据分数的返回去获取member

# 10. 根据分数的返回去获取member

6、其他命令

Redis库常用命令

# 1. 清空当前所在的数据库

# 2. 清空全部数据库

# 3. 查看当前数据库中有多少key,返回的是key的数量。

# 4. 查看最后一次操作的时间(返回时间戳)

# 5. 实时监控Redis服务接收到的命令

key的常用命令

# 1. 查看Redis中的全部的key (pattern: *,xxx*,*xxx)

# 2. 查看某一个key是否存在(1 - 存在,0 - 不存在)

# 3. 删除key

# 4. 设置key的生存时间,单位秒,单位毫秒,设置过期时间

# 5. 设置key的生存时间,单位为秒,单位为毫秒,设置能活到啥时候

# 6. 查看key的剩余生存时间,单位秒,单位毫秒

# 7 移除key的生存时间(1 - 移除成功, 0 - key不存在生存时间,key不存在)

# 8. 选择操作的库

# 9. 移动key到另外一个库中

#10. 用sort命令进行排序

#11. 用rename命令进行修改key


内存数据库,

Reds是一个key-value型的数据库(相比较之下,MySQL是关联数据库),也就是说,

一个key对应一个value,这是保证高效的手段之一。另外,Redis的所有数据在使用时都存放在内存中。

这包含了两层含义:

单台Redis能存放多少数据,取决于其内存的大小(假设所有内存都给Redis用)。如果需要存放更多数据,可以增加内存或做集群。

Redis支持将数据持久化到磁盘中。但是,不会直接对磁盘进行读写。这种持久化,一般是用于在服务器重启时,先把数据持久化,重启后再从磁盘中读取到内存。

1、string类型

string常用的命令

# 1. 添加值

set key value

eg:set mykey myvalue

# 2. 取值

get key

eg:get mykey

# 3. 批量操作

mset key value [key value ...]

mget key [key ...]

# 4. 自增命令(自增1)

incr key

注意:Incr 命令将 key 中储存的数字值增一。

如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。

如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

本操作的值限制在 64 位(bit)有符号数字表示之内。

# 5. 自减命令(自减1)

decr key

# 6. 自增|自减指定数量

incrby key increment

decrby key increment

eg:incrby mynum 20

# 7. 设置值的同时,指定生存时间(每次向Redis中添加数据时,尽量设置生存时间)

Setex 命令为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。

setex key second value

eg: setex mykey 60 myval

# 8. 设置值,如果当前key不存在的话(存在的话,什么也不做,如果不存在,同set命令)

setnx key value

eg:

# 9. 在key对应的value后,追加内容(相当于字符串拼接)

append key value

eg:

# 10. 查看value字符串的长度

strlen key

String 类型的应用场景:缓存对象、常规计数、分布式锁、共享session信息等。

增加:set key

删除:del key

修改:rename key keynew

查询:get key

2、hash类型

hash常用类型,hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表

# 1. 存储数据

hset key field value

Hset 命令用于为哈希表中的字段赋值 。

如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。

如果字段已经存在于哈希表中,旧值将被覆盖。

eg:hset website gogle "www.g.cn"

# 2. 获取数据

hget key field

eg: hget website gogle

# 3. 批量操作

hmset key field value [field value ...]

hmget key field [field]

# 4. 自增(指定自增的值)

hincrby key field increment

Hincrby 命令用于为哈希表中的字段值加上指定增量值。

增量也可以为负数,相当于对指定字段进行减法操作。

如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。

如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。

对一个储存字符串值的字段执行 HINCRBY 命令将造成一个错误。

本操作的值被限制在 64 位(bit)有符号数字表示之内。

eg:

# 5. 设置值(如果可以-field不存在,就正常添加,存在,什么也不做)

hsetnx key field value

eg:

# 6. 检查filed是否存在

hexists key field

eg:

# 7. 删除key对应的field,可以删除多个

hdel key field [field ...]

# 8. 获取当前hash结构中全部的field和value

hgetall key

eg:

# 9. 获取当前hash结构汇总全部的field

hkeys key

# 10. 获取当前hash结构中全部的value

hvals key

# 11. 获取当前hash结构中field的数量

hlen key

Hash 类型:缓存对象、购物车等。

3、list类型

列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 2^32 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

list常用命令

# 1. 存储数据

# 左插入

lpush key value [value ...]

eg: LPUSH openlab redis

# 右插入

rpush key value [value ...]

# 2. 存储数据

(如果key不存在,什么事都不做,如果key存在,是list结构就类似lpush操作,但不是list结构,什么也不做)

lpushx key value

rpushx key value

# 3. 修改数据(在存储数据时,指定好你的索引位置,覆盖之前索引位置的数据,index超出整个列表的长度会失败)

lset key index value

# 4. 出栈方式获取数据(左侧出栈,右侧出栈)

lpop key

rpop key

# 5. 获取指定索引范围内的数据(start从0开始,stop输入-1,代表最后一个数,-2代表倒数第二个数)

lrange key start stop

# 6. 获取指定索引位置的数据

lindex key index

# 7. 获取整个列表的长度

llen key

# 8.删除列表中的数据

(他是删除当前列表中的count个value值,count > 0从左侧向右删除,count < 0 从右向左删除,count == 0 删除全部的value)

lrem key count value

# 9. 保留列表中的数据(保留你指定索引范围内的数据,超过索引范围被移除掉)

ltrim key start stop

# 10. 将一个列表中的最后一个数据,插入到另外一个列表的头部位置

rpoplpush list1 list2

List 类型的应用场景:

消息队列(有两个问题:1. 生产者需要自行实现全局唯一 ID;2. 不能以消费组形式消费数据)等。

4、set类型

Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

据。

集合对象的编码可以是 intset 或者 hashtable。

Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)。

set常用命令

# 1. 存储数据

sadd key member [member ...]

# 2. 获取数据(获取全部数据)

smembers key

# 3. 随机获取一个数据(获取的同时,移除数据,count默认为1,代表弹出的数据

量)

spop key [count]

# 4. 交集(获取多个set集合交集)

sinter set1 set2

# 5. 并集(获取全部集合中的数据)

sunion set1 set2

# 6. 差集(获取多个集合中不一样的数据)

sdiff set1 set2

# 7. 删除数据

srem key member [member ...]

# 8. 查看当前set集合中是否包含此值

sismember key member

Set 类型:聚合计算(并集、交集、差集)场景,比如点赞、共同关注、抽奖活动等。

5、zset类型

有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行 从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。

zset的常用命令

# 1. 添加数据(score必须是数值。member不允许重复)

zadd key score member [score member]

# 2. 修改member的分数

(如果member是存在于key中的,正常增加分数,如果 member不存在, 这个命令就相当于zadd)

zincrby key increment member

# 3. 查看指定的member的分数

zscore key member

# 4. 获取zset中数据的数量

zcard key

# 5. 根据score的范围查询member数量

zcount key min max

# 6. 删除zset中的成员

zrem key member [member ...]

# 7. 根据分数从小到大排序,获取指定范围内的数据

(withscores如果添加这个参数,那么就会返回member对应的分数)

zrang key start stop [withscores]

# 8. 根据分数从大到小排序,获取指定范围内的数据

(withscores如果添加这个参数,那么就会返回member对应的分数)

zrevrange key start stop [withscores]

# 9. 根据分数的返回去获取member

(withscores代表同时返回score,添加limit,和MySQL中一样,如果不希望等于min或者max的值被查出来可以采用‘(分数’相当于 < 但是不等于的方式,最大值和最小值使用 +inf 和 -inf来表示)

zrangebyscore key min max [withscores] [limit offset count]

# 显示整个有序集

# 显示整个有序集及成员的 score 值

# 显示score <3 的所有成员

# 10. 根据分数的返回去获取member

(withscores代表同时返回score,添加limit,就和mysql中一样)

zrangbyscore key max min[withscores] [limit offset count]

Zset 类型:排序场景,比如排行榜、电话和姓名排序等。

6、其他命令

客户端与 Redis 建立连接后,默认会选择 0 号数据库即 db0,但可以使用 select 命令更换存储的数据库。

也可以通过修改配置文件的方式选择默认数据库。

Redis库常用命令

# 1. 清空当前所在的数据库

flushdb

# 2. 清空全部数据库

flushall

# 3. 查看当前数据库中有多少key,返回的是key的数量。

dbsize

# 4. 查看最后一次操作的时间(返回时间戳)

lastsave

# 5. 实时监控Redis服务接收到的命令

monitor

key的常用命令

# 1. 查看Redis中的全部的key (pattern: *,xxx*,*xxx)

keys pattern

eg: keys *

查看所有key

keys mykey

查看指定key

keys mykey* 查看前缀key

# 2. 查看某一个key是否存在(1 - 存在,0 - 不存在)

exists key

# 3. 删除key

del key [key ...]

# 4. 设置key的生存时间,单位秒,单位毫秒,设置过期时间

expire key second

pexpire key milliseconds

# 5. 设置key的生存时间,单位为秒,单位为毫秒,设置能活到啥时候

expireat key timestamppexpireat key milliseconds

# 6. 查看key的剩余生存时间,单位秒,单位毫秒

(-2 - 可以不存在,-1 - key没有设置生存时间,具体剩余的生存时间)

ttl key

pttl key

# 7 移除key的生存时间(1 - 移除成功, 0 - key不存在生存时间,key不存在)

persist key

# 8. 选择操作的库

select 0~15

# 9. 移动key到另外一个库中

move key db

#10. 用sort命令进行排序

#11. 用rename命令进行修改key

文章来源:https://blog.csdn.net/m2282475145/article/details/135322493
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。