【Redis开发与运维】学习笔记(三)-----Redis五种数据结构

Redis五种数据结构
字符串

常用命令

命令作用命令备注
设置值set key value [ex seconds] [px milliseconds] [nx|xx]ex seconds:为键设置秒级过期时间。命令setex key seconds value seconds; px milliseconds:为键设置毫秒级过期时间。nx:键必须不存在,才可以设置成功,用于添加。命令setnx key val xx:与nx相反,键必须存在,才可以设置成功,用于更新。
获取值get key如果要获取的键不存在,则返回nil(空)
批量设值mset key value [key value ..]批量操作命令可以有效提高开发效率
批量获取值mget key [key ..]
自增操作incr key
自减操作decr key
自增指定数字incrby key increment|
自减指定数字decrby key increment
自增浮点数incrbyfloat key increment
追加值append key val
字符串长度strlen key
设置并返回原值getset key valgetset和set一样会设置值,但是不同的是,它同时会返回键原来的值
设置指定位置的字符setrange key offeset val
获取部分字符串getrange key start endstart和end分别是开始和结束的偏移量,偏移量从0开始计算

重点:
setnx和setxx在实际使用中有什么应用场景吗?以setnx命令为例子,由于Redis的单线程命令处理机制,如果有多个客户端同时执行setnx key value,根据setnx的特性只有一个客户端能设置成功,setnx可以作为分布式锁的一种实现方案

内部编码
int:8个字节的长整型·
embstr:小于等于39个字节的字符串。
raw:大于39个字节的字符
Redis会根据当前值的类型和长度决定使用哪种内部编码实现

哈希

在Redis中,哈希类型是指键值本身又是一个键值对结构,形如value={{field1,value1},…{fieldN,valueN}}
在这里插入图片描述

命令作用命令备注
设置值hset key field val设置成功会返回1,反之会返回0,支持hsetnx
获取值hget key fie如果键或field不存在,会返回nil
删除fieldhdel key field [field ..]hdel会删除一个或多个field,返回结果为成功删除field的
计算field个数hlen key
批量设置field-valhmget key field [field ...]
批量获取field-valhmset key field value [field value .. ]
判断field是否存在hexists key fie
获取所有fieldhkeys key
获取所有valuehvals key
获取所有的field-valuehgetall key

注意

  1. 在使用hgetall时,如果哈希元素个数比较多,会存在阻塞Redis的可能。如果开发人员只需要获取部分field,可以使用hmget,如果一定要获取全部field-value,可以使用hscan命令,该命令会渐进式遍历哈希类型。
  2. hincrby hincrbyfloat
    hincrby和hincrbyfloat,就像incrby和incrbyfloat命令一样,但是它们的作用域是filed
  3. 计算value的字符串长度
    hstrlen key field

内部编码

列表

列表(list)类型是用来存储多个有序的字符串。在Redis中,可以对列表两端插入(push)和弹出(pop),还可以获取指定范围的元素列表、获取指定索引下标的元素等。列表是一种比
较灵活的数据结构,它可以充当栈和队列的角色,在实际开发上有很多应用场景

常见命令
在这里插入图片描述

命令作用命令备注
从右边插入rpush key value [value ..]lrange0-1命令可以从左到右获取列表的所有元素
从左边插入元素lpush key value [value ..]
向某个元素前或者后插入元素linsert key before|after pivot vallinsert命令会从列表中找到等于pivot的元素,在其前(before)或者后(after)插入一个新的元素value
获取指定范围内的元素列表lrange key start endlrange操作会获取列表指定索引范围所有的元素。索引下标有两个特点:第一,索引下标从左到右分别是0到N-1,但是从右到左分别是-1到-N。第二,lrange中的end选项包含了自身,这个和很多编程语言不包含end不太相同
获取列表指定索引下标的元素lindex key index
获取列表长度llen key
从列表左侧弹出lpop key
从列表右侧弹出rpop key
删除指定元素lrem key count vallrem命令会从列表中找到等于value的元素进行删除,根据count的不同.分为三种情况:count>0,从左到右,删除最多count个元素。count<0,从右到左,删除最多count绝对值个元素。count=0,删除所有
按照索引范围修剪列表ltrim key start end只保留start-end范围的数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值