首页 技术 正文
技术 2022年11月12日
0 收藏 404 点赞 4,997 浏览 2035 个字

1.redis 的数据类型

  • String 字符串
  • Hash 哈希
  • List 列表
  • Set 集合
  • ZSet(Sorted Set) 有序集合

2.使用场景

2.1 String

  • 用户token

    可以用redis来记录用户token并设置过期时间

    小龙测试:0>set 1001 tokenslkdjflksdjflkdsj ex 600
    "OK"
    小龙测试:0>get 1001
    "tokenslkdjflksdjflkdsj"
    小龙测试:0>TTL 1001
    "592"
  • 主键记录

    分布式的服务可以通过redis来记录主键的最大值

    小龙测试:0>set t_user 1
    "OK"小龙测试:0>incrby t_user 1
    "2"小龙测试:0>incrby t_user 1
    "3"小龙测试:0>get t_user
    "3"
  • ip访问

    可以通过redis记录ip访问次数进行黑名单的限制


    小龙测试:0>set 127.0.0.1 1 ex 600
    "OK"小龙测试:0>incrby 127.0.0.1 1
    "2"小龙测试:0>ttl 127.0.0.1
    "556"小龙测试:0>get 127.0.0.1
    "2"

2.2 Hash

  • 用户信息等对象的存储

    小龙测试:0>HSET zhucw name "zhuchunwang"
    "1"小龙测试:0>HSET zhucw age "30"
    "0"小龙测试:0>HSET zhucw id "100"
    "1"小龙测试:0>HGET zhucw
    "ERR wrong number of arguments for 'hget' command"小龙测试:0>HGET zhucw id
    "100"小龙测试:0>HGETALL zhucw
    1) "age"
    2) "30"
    3) "name"
    4) "zhuchunwang"
    5) "id"
    6) "100"

2.3 List

  • 消息队列 & 电商秒杀

    # 从左侧往mq中放入元素
    小龙测试:0>lpush mq message1
    "1"
    小龙测试:0>lpush mq message2
    "2"
    # 从右侧往mq中放入消息
    小龙测试:0>rpush mq 小龙测试:0>message3
    "3"
    # 查看mq长度
    小龙测试:0>llen mq
    "3"
    # 查看mq从第一个到最后一个(所有元素)
    小龙测试:0>lrange mq 0 -1
    1) "message2"
    2) "message1"
    3) "message3"
    # 查看mq从第一个到第二个
    小龙测试:0>lrange mq 0 1
    1) "message2"
    2) "message1"
    小龙测试:0>lrange mq 1 2
    1) "message1"
    2) "message3"
    # 从左边截取一个
    小龙测试:0>ltrim mq 0 1
    "OK"
    小龙测试:0>lrange mq 0 -1
    1) "message2"
    2) "message1"
    小龙测试:0>lpush mq message4
    "3"
    小龙测试:0>lrange mq 0 -1
    1) "message4"
    2) "message2"
    3) "message1"
    # 从左边取出一个
    小龙测试:0>lpop mq
    "message4"
    小龙测试:0>lrange mq 0 -1
    1) "message2"
    2) "message1"
    # 从左边添加两个 message 和 5
    小龙测试:0>lpush mq message 5
    "4"
    # 从右边取走一个
    小龙测试:0>rpop message
    null
    小龙测试:0>rpop mq
    "message1"
    小龙测试:0>lrange mq 0 -1
    1) "5"
    2) "message"
    3) "message2"

2.4 SET

  • 好友集合

    # 新增元素
    小龙测试:0>SADD zcw aaa
    "1"
    小龙测试:0>SADD zcw bbb
    "1"
    小龙测试:0>SADD zcw ccc
    "1"
    小龙测试:0>SADD zcw ccc
    "0"
    # 查看元素
    小龙测试:0>smembers zcw
    1) "aaa"
    2) "ccc"
    3) "bbb"
    小龙测试:0>SADD xm aaa
    "1"
    小龙测试:0>SADD xm ddd
    "1"
    小龙测试:0>SADD xm ddd
    "0"
    小龙测试:0>smembers xm
    1) "ddd"
    2) "aaa"
    # 以zcw为基准,xm中没有的
    小龙测试:0>sdiff zcw xm
    1) "ccc"
    2) "bbb"
    # zcw 和 xm的交际
    小龙测试:0>sinter zcw xm
    1) "aaa"

2.5 ZSET

  • 电商排序、热搜等

    # 新增元素
    小龙测试:0>ZADD phone 100 huawei
    "1"小龙测试:0>ZADD phone 90 xiaomi
    "1"小龙测试:0>ZADD phone 110 apple
    "1"小龙测试:0>ZADD phone 80 vivo
    "1"# 查看元素 从小到大
    小龙测试:0>ZRANGE phone 0 10 WITHSCORES
    1) "vivo"
    2) "80"
    3) "xiaomi"
    4) "90"
    5) "huawei"
    6) "100"
    7) "apple"
    8) "110"小龙测试:0>
    # 查看元素 分值从大到小
    小龙测试:0>Zrevrange phone 0 10 withscores
    1) "apple"
    2) "110"
    3) "huawei"
    4) "100"
    5) "xiaomi"
    6) "90"
    7) "vivo"
    8) "80"
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,497
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,910
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,744
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,498
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,135
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,298