zoukankan      html  css  js  c++  java
  • Redis学习笔记(一)— 基本命令和数据类型

    MacOs环境

    Redis基本命令

    • 启动服务:redis-server
    • 连接服务:redis-cli
      • -h 指定主机/IP
      • -p 指定端口
      • -a 指定密码
    • 关闭服务:先shutdown 保存数据并关闭服务;再quit 退出服务
    • 获取服务器信息
      • 启动并连接服务之后,执行info
      • 或直接在shell中执行redis-cli info
      • 参数指定要获取的某部分信息,例如info memory用来获取内存信息
        • Server:关于Redis服务器的基本信息
        • Clients:客户端连接的状态和指标
        • Memory:大致的内存消耗指标
        • Persistence:数据持久化相关的状态和指标
        • Stats:总体统计数据
        • Replication:主从复制相关的状态和指标
        • CPU:CPU使用情况
        • Cluster:Redis Cluster的状态
        • Keyspace:数据库相关的统计数据

    Redis数据类型

    • 字符串

      • set 设置键值对,已存在则覆盖,成功返回OK
        • SET <key> <value>
      • get 返回键对应的值,不存在则返回nil
      • strlen返回键对应的值的长度,不存在则返回0
      • append向键的字符串值末尾追加字符串,返回新串长度
      • setrange更新字符串值,偏移从0开始,返回新串长度
        • setrange key 偏移值 newValue
      • setnx设置键值对,已存在则返回0不覆盖;成功返回1
      • msetmget 一次性设置/获取多个键值对
        • MSET key value [key value...]
      • object encoding <key>查看字符串编码方式
        • int
        • embstr 长度小于等于44字节的字符串
        • raw 长度大于44字节的字符串
    • 列表

      • lpush左端插入 rpush右端插入
        -lrange <list> 0 -1获取所有list的值
        • 列表索引可以按照从左到右指定为0 ~ N-1,也可以按照从右到左指定为-1 ~ -N
      • linsert <list> after v1 v2在list列表的v1元素后面插入v2
      • lindenx <list> 3获取list中索引为3的元素(0开始)
      • lpushxrpushx列表存在时才将元素插入
      • lpoprpop左右两端删除,不存在返回nil
      • ltrim <list> index1 index2 删除list中index1-index2之外的元素
      • lset <list> index value将list索引为index的值设置为value
      • blpop <list> timebrpop <list> time 若list中无数据,阻塞time秒,0表示持续阻塞
    • 哈希

      • hmset <hashName> field name [field name...]设置哈希表
      • hmget <hashName> field field...从一个哈希表中获取多个字段对应的值
      • hget <hashName> field从一个哈希表中获取某个字段对应的值
      • hexists <hashName> field测试一个哈希中是否存在某个字段
      • hgetall获取一个hash的所有字段值(过大的哈希容易造成阻塞)
      • hscan key cursor [MATCH pattern] [COUNT number]增量地迭代遍历元素
        • cursor表示游标,迭代开始位置
        • MATCH匹配满足制定Glob表达式的字段
        • COUNT指定每次迭代的返回元素个数,默认是10
        • 返回的新游标为0时表示遍历完成
      • hset修改现有字段的值或增加新的字段
      • hdel删除一个hash中的某个字段
      • hsetnx字段不存在时设置字段
    • 集合

      • 唯一、无序
      • sadd set member [member...]给集合添加元素
      • sismember set member检测member是否在set中
      • srem从集合中删除元素
      • scard获取集合中元素数量
      • smembers列出集合所有元素(数据量大会导致阻塞)
      • 集合运算
        • 并集计算:sunionsunionstore
        • 交集计算:sintersinterstore
        • 差集计算:sdiffsdiffstore
        • 不带store直接返回操作结果;反之将结果存到一个指定的键中
    • 有序集合

      • zadd 添加集合元素
      • zrevrange获取集合排序
      • zincrby对集合中某个元素增加权重分数
      • zrevrank查看元素排名
      • zscore查看元素权重
      • zunionstore sumName 2 set1 set2 weights 1 2 合并两个集合排名
        • 第一个2指合并的集合数目
        • weights后面的数字指集合权重的倍数,set1的权重值乘1,set2的权重值乘2
    • HyperLogLog

      • pfadd 增加数量
      • pfmerge合并
      • pfcount计算非重复总量
    • Geo

      • geoadd增加经纬度坐标
      • geopos获取指定成员坐标
      • georadius获取指定范围内的坐标,中心点由输入的经纬度指定
      • georadiusbymember获取指定范围内的坐标,中心点由Geo集合中的成员指定
      • geodist比较两个坐标点的距离

    Redis键管理

    • dbsize获取Redis中键的个数
    • keys *scan number获取Redis中的所有键
    • delunlink删除Redis中的键
    • exists判断一个键是否存在
    • type获取一个键的数据类型
    • rename重命名一个键
      • 最佳实践:如果目标键已存在,则先unlink再重命名
  • 相关阅读:
    PHP 处理接口保证数据安全性
    zeromq使用模式实验总结
    文件描述符设置
    配置openssh实现sftp远程文件上传
    系统信号(signal)与其他(定时器,退出清理等)
    Python Subprocess Popen 管道阻塞问题分析解决
    fastcgi协议之一:定义
    命名空间与自动加载机制
    PSR规范
    细说php的异常和错误处理机制
  • 原文地址:https://www.cnblogs.com/GaiHeiluKamei/p/10975961.html
Copyright © 2011-2022 走看看