redis学习

c语言开发,代码量只有三万多行,开源,默认端口号6379

[size=medium][b]5种数据类型[/b][/size]
string 字符串
hash 散列
list 列表
set 集合
zset 有序集合

redis 可以对标签进行如交集,并集这样的集合操作

redis 可以为每个键值设置生存时间(time to live,TTL)

[size=medium][b]redis 事务[/b][/size]
[b]multi[/b]
commond1
commond2
exec
1.事务之间的命令会入等待执行的任务队列,exec告诉redis顺序执行队列的命令,redis保证队列里的命令要么都执行,要么都不执行。
2.redis还保证事务的命令顺序执行不会被其他命令插入。
3.如果队列里的命令有错误(语法错误:指令不存在or参数错误),则队列里的命令[b]全不[/b]执行。

[size=medium][b]watch[/b][/size]
[b]watch实现incr[/b]
WATCH mykey
val = GET mykey
val = val + 1
MULTI
SET mykey $val
EXEC
1.watch执行之后,exec执行之前,如果有其他客户端修改了mykey的值,当前客户端的事务就会失败,称需要做的就是不断重复这个操作,直到没有发生碰撞为止。
2.这种形式的锁被称作乐观锁, 它是一种非常强大的锁机制。 并且因为大多数情况下, 不同的客户端会访问不同的键, 碰撞的情况一般都很少, 所以通常并不需要进行重试


[b][size=medium]优先级队列[/size][/b]
[b]blpop[/b]
>blpop queue1 queue2 queue3 0
会从最左边的队列pop元素,直到最左边的队列为空。
如果多个键都没有元素则阻塞。
消息队列伪代码
while(true){
var task = brpop blpop queue1 queue2 queue3 0
execute(task)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值