Redis 数据类型及其常用命令一(string、list、set、zset、hash)

这篇具有很好参考价值的文章主要介绍了Redis 数据类型及其常用命令一(string、list、set、zset、hash)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、简介

        Redis 的常用数据类型有十种,分别为:string、list、set、zset、hash、geo、hyperloglog、bitmap、bitfield、stream。熟练使用各种数据类型,能够快速结合场景进行使用。

注:我们所说的数据类型是指 value 的数据类型,key 都是字符串。

所有类型的命令查看:help @数据类型;例如 help @string

2、Redis 的 key 常用命令
# 1、查看当前库所有key
keys *
# 2、判断某个key是否存在
exists key
# 3、查看key的类型是什么
type key
# 4、删除指定的key,会发生阻塞
del key
# 5、非阻塞删除,仅仅将key从keyspace中删除,真正删除在后续异步操作中
unlink key
# 6、查看key还有多久过期,-1表示永不过期,-2表示已过期
ttl key
# 7、给key设置过期时间
expire key
# 8、将指定的key移动到指定的数据库
move key db_index[0-15]
# 9、切换数据库
select db_index[0-15]
# 10、查看当前库key的数量
dbsize
# 11、清空当前库
flushdb
# 12、清空全部数据库
flushall
3、Redis 字符串(string)

        string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M,string类型是二进制安全的,redis的string可以包含任何数据,比如jpg图片或者序列化的对象 。

# 1、设置值
set key value [NX|XX] [EX seconds|KEEPTTL] # 设置过期时间,keepttl在覆盖值之后继承原来的过期时间
# 2、获取值
get key
# 3、同时设置多个值
mset key value [key1 value1 ...]
# 4、同时获取多个值
mget key [key1 ...]
# 5、设置值返回旧值
getset key value
# 6、同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在
msetnx key value [key1 value1 ...]
# 7、设置指定范围的值
setrange key index value  # 从index开始,将index以及index之后的用value代替
# 8、获取指定范围的值,从零到负一表示全部
getrange key begin_index end_index # 获取[begin_index,end_index]范围的value
# 9、数值增减(value一定是整型数字才行)
incr/decr key          # 增减1
incrby/decrby key num  # 增减num
# 10、获取字符串长度
strlen key
# 11、内容追加
append key value 
# 12、分布式锁
setnx key value   # key不存在设置,存在设置不成功
setex key seconds # 设置过期时间
4、Redis 列表(list)

        Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边),它的底层实际是个双端链表,最多可以包含 2^32 - 1 个元素(每个列表超过40亿个元素)。主要功能有push/pop等,一般用在栈、队列、消息队列等场景。left、right都可以插入添加;如果键不存在,创建新的链表;如果键已存在,新增内容;如果值全移除,对应的键也就消失了。

# 1、向列表中添加元素
lpush/rpush key value1 value2
# 2、获取元素
lpop/rpop key
# 3、指定下标获取元素
lrange key begin_index end_index # 获取下标范围为[begin_index,end_index]元素
# 4、按照索引下标获取元素
lindex key index
# 5、获取列表中元素个数
llen key
# 6、删除N个值为value的元素(从左往右删,如果N为0表示删除全部值为value的元素)
lrem key N value
# 7、截取指定范围的值,再赋值给key
ltrim key begin_index end_index  # 范围为[begin_index,end_index] 
# 8、移除列表的最后一个元素,并将该元素添加到另一个列表并返回
rpoplpush 源列表 目的列表
# 9、设置指定下标的值
lset key index value 
# 10、在指定的value前后插入新值
linsert key before/after 已有value 插入的新值
5、Redis 哈希(hash)

        Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。Redis 中每个 hash 可以存储 2^32 - 1 键值对(40多亿)。

# 1、设置hash值
hset hash_key  k1 v1
# 2、获取hash值
hget hash_key k1
# 3、设置多个hash值
hmset hash_key  k1 v1 k2 v2 ...
# 4、获取多个hash值
hmget hash_key k1 k2 ...
# 5、获取所有的hash值
hgetall hask_key
# 6、删除hash值
hdel hash_key k1 k2 ..
# 7、获取某个key的全部hash值数量
hlen hash_key
# 8、判断某个key中是否包含指定的hash值
hexists key k1
# 9、获取全部的key/value
hkeys/hvals hash_key
# 10、给指定的hash值增加
hincrby/hincrbyfloat hash_key k1 num
# 11、hash值不存在赋值,存在了无效
hsetnx hash_key k1 v1
6、Redis 集合(set)

        Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据,集合对象的编码可以是 intset 或者 hashtable。Redis 中Set集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为 2^32 - 1 (每个集合可存储40多亿个成员)。

# 1、添加元素
sadd key value1 value2 ...
# 2、遍历集合所有元素
smembers key
# 3、判断元素是否在集合中
sismember key value
# 4、删除元素
srem key value1 value2 ...
# 5、获取集合里面元素个数
scard key
# 6、从集合中随机选出指定个数个元素
srandmember key num 
# 7、从集合中随机弹出一个元素,弹出后会删除
spop key
# 8、将一个集合中某个值移动到另一个集合
smove key1 key2 key1中的值
# 9、差集运算
sdiff key1 key2
# 10、并集
sunion key1 key2
# 11、交集
sinter key1 key2
# 12、Redis7新增命令,指定numkeys个key做交集,返回交集中元素个数,还可以通过limit限制
SINTERCARD numkeys key [key ...] [LIMIT limit]
7、Redis 有序集合(zset)

        Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。zset集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 2^32 - 1(40多亿个)。

# 1、添加元素
zadd key score1 v1 score2 v2 ...
# 2、按照分数从小到大排序,返回指定范围数据
zrange key start end [withscores] # 范围为[start,end]
# 3、zrange反向操作
zrevrange key start end [withscores] # 范围为[start,end]
# 4、获取指定分数范围内的元素
zrangebyscore key [(]min max [withscores] [limit offset count] # 如果是开区间需要加(
# 5、获取元素分数
zscore key v1
# 6、获取集合中元素个数
zscard key
# 7、删除元素(可以删除多个)
zrem key v1 v2 ..
# 8、增加某个元素的分数
zincrby key num v1
# 9、获取指定分数范围内元素个数
zcount key min max # 范围为[min,max]
# 10、获取元素下标值
zrank key v1
# 11、获取逆序下标值
zrevrank key v1
8、总结

        本文详细介绍Redis 常用的五种数据结构:string、list、set、zset、hash,从使用命令入手,熟悉每个数据结构的使用场景和使用方式,帮助大家更加深入熟悉Redis。后文将介绍Redis另外五种数据结构。

        本人是一个从小白自学计算机技术,对运维、后端、各种中间件技术、大数据等有一定的学习心得,想获取自学总结资料(pdf版本)或者希望共同学习,关注微信公众号:it自学社团。后台回复相应技术名称/技术点即可获得。(本人学习宗旨:学会了就要免费分享)

Redis 数据类型及其常用命令一(string、list、set、zset、hash),Redis,java技术,redis,数据库,缓存

        文章来源地址https://www.toymoban.com/news/detail-839236.html

到了这里,关于Redis 数据类型及其常用命令一(string、list、set、zset、hash)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Redis数据类型(list\set\zset)

    \\\"maybe it\\\'s why\\\"          列表类型是⽤来存储多个 有序 的字符串,列表中的每个字符串称为元素(element),⼀个列表最多可以存储个2^32 - 1个元素。在Redis中,可以对列表两端插⼊(push)和弹出(pop),还可以获取指定范围的元素列表、获取指定索引下标的元素等。列表是

    2024年02月11日
    浏览(42)
  • Redis追本溯源(二)数据结构:String、List、Hash、Set、Zset底层数据结构原理

    Redis 并没有直接用 C 语言的字符串,而是自己搞了一个 sds 的结构体来表示字符串,这个 sds 的全称是 Simple Dynamic String,翻译过来就是“简单的动态字符串”。 安全的二进制存储 资源。关于sds的扩容和缩容下面会进行详细的介绍,这里先不赘述了。 在一些情况中,我们需要

    2024年02月16日
    浏览(55)
  • Redis Redis的数据结构 - 通用命令 - String类型命令 - Hash类型命令

    目录 Redis的数据结构: Redis命令: 通用命令:(通用指令是部分数据类型的,都可以使用的指令) KEYS查询命令: DEL删除命令: EXISTS判断命令: EXPIPE有效期设置命令: TTL查看剩余期限命令: String类型: String的3种类型: String类型的常见命令: SET插入数据命令: MSET多重插

    2024年02月09日
    浏览(46)
  • Redis常用数据类型及常用命令

    服务端运行 配置文件需要输入完整地址 连接数据库 设置数据库密码 编辑 redis.windows.conf 文件 带端口密码地址连接数据库 利用可视化工具连接redis 连接前需启动服务端 地址: https://gitee.com/qishibo/AnotherRedisDesktopManager/releases 字符串操作命令 哈希操作命令 列表操作命令 集合操

    2024年02月11日
    浏览(64)
  • redis十大数据类型的说明和常用命令

    表1.1 十大数据类型 类型 说明 String (字符串) 最基本的数据类型,可以存储字符串、整数或浮点数 List (列表) 一种有序的字符串列表,支持从两端插入和删除元素 Hash (哈希表) 一种 key-value 存储结构,用于存储对象,类似于关联数组 Set (集合) 一种无序的字符串集合,支持交集

    2024年02月03日
    浏览(50)
  • redis String类型命令

    Redis的String类型是一种简单的键值对数据结构,常用的String类型命令有: SET key value:设置指定key的值为value。 GET key:获取指定key的值。 DEL key:删除指定key及其对应的值。 INCR key:将指定key的值加1。 DECR key:将指定key的值减1。 INCRBY key increment:将指定key的值增加指定的增量

    2024年02月13日
    浏览(40)
  • Rust 标准库字符串类型String及其46种常用方法

    Rust主要有两种类型的字符串:str和String str 由[u8]表示,UTF-8编码的字符串的引用,字符串字面值,也称作字符串切片。&str用于查看字符串中的数据。它的大小是固定的,即它不能调整大小。 String String 类型来自标准库,它是可修改、可变长度、可拥有所有权的同样使用UTF

    2024年02月07日
    浏览(98)
  • Redis数据迁移过程,使用jedis客户端发送命令,需要注意string和byte类型的命令,如果使用的转换字符编码不一致,会导致丢数据

    string与byte来回转换,需要指定一样字符编码规则 详细原因请参考: 关于Java中bytes到String的转换-阿里云开发者社区   简单来说 (1)string和byte转换之间需要指定字符编码参数Charset.defaultCharset(),默认不指定的情况下,使用的是utf-8编码,所以一般情况下相互转换使用的都是同

    2023年04月09日
    浏览(90)
  • redis List类型命令

    在Redis中,List(列表)是一种有序的、可重复的数据结构,它支持插入、删除和获取元素的操作。以下是一些常见的Redis List类型命令: LPUSH:将一个或多个值从列表的左侧插入。 其中, key 是列表的键名, value1 、 value2 等是要插入的值。 示例: 执行以上命令后,列表mylis

    2024年02月13日
    浏览(34)
  • 【redis】list类型命令简述

    redis的list类型,可以存储双向链表作为value,key保留有head和tail指针可以指向双向链表的头和尾,因此可以直接从头或尾对list进行操作。 全部命令如下: 下面示例如下: lpush :lpush key e1 e2 e3…将数据从头那里推入list lpop :lpop key,将数据从head弹出 这样2个同向的命令组合起

    2024年02月17日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包