欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Redis学习笔记(一)— 基本命令和数据类型

程序员文章站 2022-04-10 21:06:15
MacOs环境 Redis基本命令 启动服务: 连接服务: 指定主机/IP 指定端口 指定密码 关闭服务:先 保存数据并关闭服务;再 退出服务 获取服务器信息 启动并连接服务之后,执行 或直接在shell中执行 参数指定要获取的某部分信息,例如 用来获取内存信息 Server:关于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获取集合中元素数量
    • 集合运算
      • 并集计算: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 增加数量
    • pfcount计算非重复总量
  • geo
    • geoadd增加经纬度坐标
    • geopos获取指定成员坐标
    • georadius获取指定范围内的坐标,中心点由输入的经纬度指定
    • georadiusbymember获取指定范围内的坐标,中心点由geo集合中的成员指定
    • geodist比较两个坐标点的距离

redis键管理

  • dbsize获取redis中键的个数
  • keys *scan number获取redis中的所有键
  • delunlink删除redis中的键
  • exists判断一个键是否存在
  • type获取一个键的数据类型
  • rename重命名一个键
    • 最佳实践:如果目标键已存在,则先unlink再重命名