码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Redis


    目录

    Redis介绍

    启动redis 并连接

    benchmark 压力测试工具

    Redis

     select  切换数据库          DBSIZE  查看DB大小

    set key value

    keys  * 查看数据库中所有的key

    ​编辑

    flushdb  清空当前库的内容

     FLUSHALL   清空所有库的内容

     Redis-key常用命令集合

    Redis是单线程的

    Redis为什么单线程还这么快?

    Redis的五大数据类型

    1.String

    设value

    ​编辑

     自增自减 指定增减量

     字符串范围range  截取GETRANGE

    替换 SETRANGE

     

     setex 设置过期时间      setnx不存在再设置

     mset mget同时设置 获取多个值​编辑

     set 高阶用法

    ​编辑

    getset  先get然后再set

    ​编辑

    使用场景

    2.List

    3.Set

    4.Hash

    5.Zset

    三种特殊的数据类型


    Redis介绍

    可以用作key - value 键值对数据库 、 缓存 、  消息中间件MQ

    启动redis 并连接

    redis-server redis-config/redis.conf

    redis-cli -p 6379

    再开一台服务器检查是否启动成功

    benchmark 压力测试工具

    是官方自带的性能测试工具

       

    可见redis是真滴快!

    Redis

    Redis有16个数据库,默认是第0个

    默认端口号是6379   因为redis作者的偶像名字在手机9键打出来是6379

     select  切换数据库          DBSIZE  查看DB大小

    set key value

    get 根据key读取value的值

     

    keys  * 查看数据库中所有的key

    flushdb  清空当前库的内容

     FLUSHALL   清空所有库的内容

     

     Redis-key常用命令集合

    1. 127.0.0.1:6379> ping #查看当前连接是否正常,正常返回PONG
    2. PONG
    3. 127.0.0.1:6379> clear #清楚当前控制台(为了更好的看到下面输入的命令)
    4. 127.0.0.1:6379> keys * #查看当前库里所有的key
    5. 1) "db"
    6. 127.0.0.1:6379> FLUSHALL #清空所有库的内容
    7. OK
    8. 127.0.0.1:6379> keys *
    9. (empty array)
    10. 127.0.0.1:6379> set name dingdada #添加一个key为‘name’ value为‘dingdada’的数据
    11. OK
    12. 127.0.0.1:6379> get name #查询key为‘name’的value值
    13. "dingdada"
    14. 127.0.0.1:6379> keys *
    15. 1) "name"
    16. 127.0.0.1:6379> set name1 dingdada2
    17. OK
    18. 127.0.0.1:6379> get name1
    19. "dingdada2"
    20. 127.0.0.1:6379> keys * #查看当前库里所有的key
    21. 1) "name1"
    22. 2) "name"
    23. 127.0.0.1:6379> EXISTS name #判断当前key是否存在
    24. (integer) 1
    25. 127.0.0.1:6379> move name 1 #移除当前库1的key为‘name‘的数据
    26. (integer) 1
    27. 127.0.0.1:6379> keys *
    28. 1) "name1"
    29. 127.0.0.1:6379> FLUSHALL #再次清空所有库的内容
    30. OK
    31. ## 多加几条数据 下面测试设置key的过期时间
    32. 127.0.0.1:6379> set name dingdada
    33. OK
    34. 127.0.0.1:6379> set name1 dingdada1
    35. OK
    36. 127.0.0.1:6379> set name2 dingdada2
    37. OK
    38. 127.0.0.1:6379> EXPIRE name 15 #设置key为’name‘的数据过期时间为15秒 单位seconds
    39. (integer) 1
    40. 127.0.0.1:6379> ttl name #查看当前key为’name‘的剩余生命周期时间
    41. (integer) 13
    42. 127.0.0.1:6379> ttl name
    43. (integer) 12
    44. 127.0.0.1:6379> ttl name
    45. (integer) 11
    46. 127.0.0.1:6379> ttl name
    47. (integer) 8
    48. 127.0.0.1:6379> ttl name
    49. (integer) 6
    50. 127.0.0.1:6379> ttl name
    51. (integer) 3
    52. 127.0.0.1:6379> ttl name
    53. (integer) 2
    54. 127.0.0.1:6379> ttl name
    55. (integer) 1
    56. 127.0.0.1:6379> ttl name
    57. (integer) 0
    58. 127.0.0.1:6379> ttl name #如若返回-2,证明key已过期
    59. (integer) -2
    60. 127.0.0.1:6379> get name #再次查询即为空
    61. (nil)
    62. 127.0.0.1:6379> type name1
    63. string
    64. 127.0.0.1:6379>

     单点登录:设置过期时间

    Redis是单线程的

    Redis是很快的,官方表示,Redis是基于内存操作,CPU不是Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程,所以就使用了单线程。

    Redis为什么单线程还这么快?

    速度  CPU>内存>硬盘

    核心:redis是将所有的数据放在内存中的,所以说使用单线程去操作效率就是最高的,多线程的话CPU会上下文切换 这是耗时的操作,对于内存系统来说,没有上下文切换效率就是最高的。多次读写都是在一个CPU上的,在内存情况下,这个就是最佳的。

    Redis的五大数据类型

    Redis(一)入门:五大数据类型的学习和理解①_大鱼等于负的博客-CSDN博客

    1.String

    设value

     自增自减 指定增减量

     字符串范围range  截取GETRANGE

    替换 SETRANGE

     

     setex 设置过期时间      setnx不存在再设置

     mset mget同时设置 获取多个值

     set 高阶用法

    getset  先get然后再set

    使用场景

    2.List

    3.Set

    4.Hash

    5.Zset

    三种特殊的数据类型

    geospatial  地理位置空间

    hyperloglog

    bitmaps

  • 相关阅读:
    【Unity】Unity坑的集锦之RenderTexture打包黑屏
    基于51单片机火灾监测自动灭火装置Proteus仿真
    风控违约场景如何预测,来看看这份常见的三种模型实现算法对比
    第九章认识Express模板
    Java基础static关键字
    河南2022中国农民丰收节 国稻种芯:主会场有味漯河食品丰收
    leetcode做题笔记144. 二叉树的前序遍历
    golang拾遗:实现一个不可复制类型
    数据结构之栈
    JUnit单元测试
  • 原文地址:https://blog.csdn.net/m0_56017821/article/details/126325680
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号