您现在的位置是:网站首页> 编程资料编程资料

redis操作学习记录_Redis_

2023-05-27 433人已围观

简介 redis操作学习记录_Redis_

本文实例总结了redis操作。分享给大家供大家参考,具体如下:

相关内容:

虽然有参考文档,而且记忆太多也是耗脑,但学习的时候还是想要有个系统划分开知识点的文档,即使不要求去细致记忆,但划分开知识块后脑子里的印象才会更清晰,所以就有了这个博文。

主要是将各种命令进行划分成不同的功能归属

  • redis的介绍:
  • 客户端连接操作
  • 服务端操作
  • string操作
  • hash操作
  • list操作
  • set操作
  • sort set操作
  • key操作
  • 发布\订阅
  • 事务

参考:w3school

首发时间:2018-03-10 15:36


Redis的介绍:

  • Redis是一种非关系型数据库 ,是一个高性能的key-value数据库 ,设置的值也是以键值对存在的
  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis还支持数据备份
  • Redis的所有操作都是原子性的
  • Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted
    set:有序集合)。


客户端连接操作:

  • 启动redis客户端连接:

    • redis-cli [-h host] [-p port] [-a password ]
      • host是服务端IP
      • port是服务端端口
      • password是连接密码
      • 端口port 默认是6379
    • image
  • 断开连接: quit

  • 客户端连接测试:

    • auth:如果设置了密码,但连接的时候没有使用-a password,那么可以在连接完成后使用auth password来解锁,解锁之后才能使用其他 Redis 命令
    • echo message:打印一个特定的信息 message ,测试时使用。
    • ping [message]:使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG 。通常用于测试与服务器的连接是否仍然生效,或者用于测量延迟值。如果设置了message,那么返回值为message。
  • 切换数据库

    • select index:切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。默认使用 0 号数据库。可以从标识看出当前是哪个数据库。image

服务端操作:

  • 数据持久化:

    • snapshot快照持久化:保存的是所有数据,默认情况下,自动执行快照持久化,保存文件为.rbd

      • 如何打开snapshot记录功能:
        • 默认打开的
      • 如何使用:
        • 使用save:SAVE 命令执行一个同步保存操作,将当前 Redis 实例的所有数据快照(snapshot)以 RDB 文件的形式保存到硬盘。一般来说,在生产环境很少执行 SAVE 操作,因为它会阻塞所有客户端,保存数据库的任务通常由BGSAVE 命令异步地执行。然而,如果负责保存数据的后台子进程不幸出现问题时, SAVE 可以作为保存数据的最后手段来使用。
        • 使用bgsave:与save不同的是会在后台进行备份,不会堵塞当前所有客户端。
      • 如何恢复数据: 使用snapshot方式保存会有一个.rbd文件(config get dbfilename可获知是哪个文件),保存完毕后将这个文件复制到外面一份,当需要恢复的时候,关闭redis服务,将.rbd复制回来覆盖,重启redis服务即可
    • AOF日志记录型持久化:保存的是操作日志

      • 如何打开aof记录功能: config set appendonly “yes”
      • 如何使用: 开启aof功能后,会自动记录执行的命令
      • 如何恢复:与rdb恢复数据方式相同,会有一个.aof文件(config get appendfilename可获知是哪个文件,如果不行就看配置文件),保存完毕后将这个文件复制到外面一份,当需要恢复的时候,关闭redis服务,将.aof复制回来覆盖,重启redis服务即可
    • 如果rdb文件,和aof文件都存在,优先用“AOF"来恢复数据【这个要谨慎使用,有可能因为这个而发生”删库“】
    • 恢复时rdb和aof,rdb恢复的快
  • 客户端管理:

    • 断开客户端:CLIENT KILL ip:port 【关闭地址为 ip:port 的客户端。】

    • 设置客户端名称:CLIENT SETNAME connection-name 【为当前连接分配一个名字。】

    • 获取客户端名称:CLIENT GETNAME 【返回 CLIENT SETNAME 命令为连接设置的名字。创建的连接默认是没有名字的】

    • 获取客户端连接信息:CLIENT LIST 【返回所有连接到服务器的客户端信息和统计数据。】

  • 服务端配置管理:

    • 获取配置:config get config_setting_name【config_setting_name是配置项名】

    • 设置新配置:config set config_setting_name new_config_value 【new_config_value是新的配置值】

  • 数据管理:

    • 清空所有数据:flushall

    • 清空当前数据库中的所有 key:flushdb

  • 其他:

    • 获取时间:time 【返回当前服务器时间。第一个字符串是当前时间(以 UNIX 时间戳格式表示),而第二个字符串是当前这一秒钟已经逝去的微秒数。】

String操作:

String是字符串的意思,在redis中就是表示“设置变量的值为一个字符串”

  • 设置string:

    • set key value [EX seconds] [PX milliseconds] [NX|XX] :设置键值对,无论key是否存在,存在则覆盖
      • key:就是设置的键名
      • value:对应的键的值,默认为字符串,可以加双引号,也可以不加
      • ex:设置键的过期时间为 seconds 秒
      • px:与ex不同的是代表多少毫秒失效
      • nx:只在键不存在时,才对键进行设置操作 【当使用setnx设置值时默认有nx】
      • xx:只在键已经存在时,才对键进行设置操作
      • image
    • setnx key value :只有在 key 不存在时设置 键值对
    • setex key seconds value:设置键值对的过期时间为seconds 秒
    • setbit key offset value: 设置对应二进制的offset位为value【每个字符占八位,从高位到低位为0-7】image
    • setrange key offset value :用 value 参数覆盖给定 key 所储存的字符串值,从偏移量 offset 开始。image
    • mset key value [key value ...]:同时设置一个或多个 key‐value 对。image
    • msetnx key value [key value ...]:当所有键都不存在时,同时设置一个或多个 key‐value 对。只要一个给定 key 已存在, 全部设置操作都会取消(原子性)
    • append key value:如果 key 已经存在并且是一个字符串, append命令将 value 追加到 key 原来的值的末尾。如果 key 不存在, append就简单地将给定 key 设为 value ,就像执行 SET key value 一样。 如果key不是一个字符串,将报错。image
  • 获取string:

    • get key :获取对应键的键值
    • mget key [key ...]:获取多个键的值
    • getrange key start end:返回 key 中字符串值的子字符串,字符串的截取范围为[start , end]
    • getset key newvalue:返回key的值,并设置key的值为newvalue
    • getbit key offset: 获取字符串所代表的二进制位的offset数值image
    • strlen key :获取key对应字符串的长度
    • bitcount key [start end]:对应对应字符串的二进制中为1的数量
  • 其他操作:

    • decr key: 当字符串为数字时,将 key 中储存的数字值减一,其余时报错。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 decr 操作。
    • decrby key decrement:与decr key不同的是指定减少数量为decrement。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 decrby 操作。
    • incr key:当字符串为数字时,将 key 中储存的数字值增一,其余时报错。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 incr操作。
    • incrby key increment:当字符串为数字时,将 key 所储存的值加上增量 increment 。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行incrby 命令。
-六神源码网