Redis_day02

数值操作

  • incrby key 步长 将key增加指定步长
  • decrby key 步长 将key减少指定步长
  • incr key : +1操作
  • decr key: -1操作
  • incrbyfloat key step
例子:
	set number 50			(此时number是字符串)
	incrby number (2-任意)		(增加任意值  且将number变为integer)

对字符串加过期时间有两套方案

方案1: (字符串独有) 直接用set的ex参数

set key value ex 3
or
setex key 3 value	(一样的)

方案2: (通用的) 使用expire通用命令

1、 set key value
2、 expire key 5		# 秒
3、 pexpire key 5		# 毫秒

检查过期时间

  • ttl key (查看过期时间)
	-1: 	代表当前key没有过期时间
	>0:		代表当前key的剩余存活时间
	-2:		代表当前key不存在(两种情况 1:key自始至终不存在   2:key因为过期被销毁 了)

  • persist key (删除过期时间变为普通变量) 对应的 expire key time 加上过期时间
    说明: 就是将key变为永不过期
    返回值: 1 代表成功 / 0 代表当前key没有过期时间 或者key不存在

Redis单线程删除过期数据的机制

1、 惰性删除
不会去时时刻刻检测数据是否过期, 只有当用户get该数据的时候才会判断是否过期 过期则返回null且删掉数据

2、 定期删除
源码大致意思就算每100毫秒就调用一个方法 该方法扫描16个数据库,随机抽取20个数据 如果删掉的数据大于总数据的1/4 或者第一个数据就删除了 那就继续循环该方法, 但是一旦超过25毫秒强制退出 等待下一个100毫秒

3、maxmemory
最后一道保险, 一旦内存量超过 最大限制, redis会执行命令时触发 内存淘汰

主流淘汰机制如下:
	volatile-lru: 	从已设置过期时间的内存数据集中挑选最近最少使用的数据  淘汰;
	
	volatile-ttl:	从以设置过期时间的内存数据集中挑选即将过期的数据 淘汰;

	volatile-random: 从已设在过期时间的内存数据集中任意挑选数据 淘汰;

	allkeys-lru: 	从内存数据集中挑选最近最少使用的数据淘汰;
	
	allkeys-random:	从数据集中任意挑选数据 淘汰;

	no-enviction: 	禁入大多写命令 

数据类型-列表

  • 基础概念
    1、元素是字符串类型
    2、列表头尾增删快, 中间增删慢, 增删元素是常态
    3、元素可重复
    4、最多可包含2^32 -1 个元素
    5、索引同python列表

列表常用命令- 增加数据

1、 LPUSH key value1 value2 (会直接初始化一个列表)

说明: 从列表头部压入元素
返回: list最新的长度

2、 RPUSH key value1 value2

说明: 从列表尾部压入元素
返回: list最新的长度

3、 RPOPLPUSH src dst

说明: 从列表src尾部弹出1个元素, 压入到列表dst的头部
返回: 被弹出的元素

4、LINSERT key after|before value newvalue

说明:在列表 指定元素后面/前面插入元素
such as: linsert l2 after e f ( 在 列表l2 的元素e 后面 插入 f)

返回:
————1、如果命令执行成功, 返回列表的长度
————2、如果没有找到 元素 , 返回 -1
————3、如果 key不存在或着为空列表, 返回 0

5、 查看列表中元素

LRANGE key start stop

6、获取列表长度

LLEN key

列表常用命令- 删除

7、从列表头部弹出1个元素

LPOP key

8、 从列表尾部弹出1个元素

RPOP key

9、 列表头部, 阻塞弹出, 列表为空 或者不存在 时阻塞

BLPOP key timeout (timeout写时间 即阻塞时间)

10、 列表尾部, 阻塞弹出,列表为空 或者不存在 时阻塞

BRPOP key timeout

如果超时时间设置为0, 就是永久阻塞, 直到有数据可以弹出

11、 LREM key count value

说明:删除指定元素
————count > 0: 表示从头部开始向表尾搜索, 移除与value相等的元素, 数量为count
————count < 0: 表示从尾部开始向表头搜索, 移除与value相等的元素, 数量为-count
————count = 0: 移除表中所有与value相等的值
. .
返回:被移除元素的数量

12、 LTRIM key start stop

说明: 保留指定范围内的元素
返回: ok
场景:
保存微博评论最后500条
LTRIM weibo:comments 0 499

列表常用命令- 更新

13、 LSET key index newvalue

说明: 设置list指定索引的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值