1. Redis 安装与介绍

Redis安装

  1. Docker方式

    #拉取 Redis 镜像 
    > docker pull redis
    #运行Redis 容器 
    > docker run --name myredis - d - p6379 : 6379 redis  
    #执行容器中的 redis-cli, 命令行操作
    > docker exec - it myredis redis- cli 
    
  2. 压缩包安装

    #安装C 语言的编译环境:
    > yum install centos-release-scl scl-utils-build
    > yum install -y devtoolset-8-toolchain
    > scl enable devtoolset-8 bash
    #测试gcc版本
    > gcc --version
    gcc (GCC) 8.3.1 20190311 (Red Hat 8.3.1-3)
    Copyright (C) 2018 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    #下载redis-6.2.1.tar.gz
    #解压命令
    > tar -zxvf redis-6.2.1.tar.gz
    #解压完成后进入目录:cd redis-6.2.1
    #在redis-6.2.1目录下再次执行make命令
    > make
    > make install
    
  3. 查看redis脚本
    默认安装目录 /usr/local/bin
    在这里插入图片描述

Redis 数据结构

  1. string 字符串
    ​ 内部是一个字符数组。
  2. list 列表
    ​ 相当于LinkedList,链表。
  3. hash 字典
    ​ 相当于HashMap,Redis 的字典的值只能是字符串
  4. set 集合
    ​ 相当于HashSet,内部键值对无序、唯一。
  5. zset 有序列表
    类似SortedSet与HashMap的结合体,每个value有个socre,代表这个value的排序权重。

Redis分布式锁

SET 命令相关参数:

  • EX seconds : 将键的过期时间设置为 seconds 秒。 执行 SET key value EX seconds 的效果等同于执行 SETEX key seconds value
  • PX milliseconds : 将键的过期时间设置为 milliseconds 毫秒。 执行 SET key value PX milliseconds 的效果等同于执行 PSETEX key milliseconds value
  • NX : 只在键不存在时, 才对键进行设置操作。 执行 SET key value NX 的效果等同于执行 SETNX key value
  • XX : 只在键已经存在时, 才对键进行设置操作。
  1. 实现

    使用 set key value [EX seconds] [PX milliseconds] [NX|XX] 指令,只允许被一个客户端操作;

    例如: setnx 与 expire组合的原子指令

    set lock:write 1 ex 5 nx

    当 锁 lock:write 不存在时加锁,过期时间5s

  2. 超时问题

    线程执行任务时间较长,锁过期释放,被其他线程获取。

  3. Java代码实现

    // 若key不存在,则新建,并设置过期时间
    Boolean setIfAbsent(K key, V value, long timeout, TimeUnit unit);
    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zxg45

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值