您现在的位置是:网站首页> 编程资料编程资料
redis操作学习记录_Redis_
2023-05-27
438人已围观
简介 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
- redis-cli [-h host] [-p port] [-a password ]
断开连接: quit
客户端连接测试:
- auth:如果设置了密码,但连接的时候没有使用-a password,那么可以在连接完成后使用auth password来解锁,解锁之后才能使用其他 Redis 命令
- echo message:打印一个特定的信息 message ,测试时使用。
- ping [message]:使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG 。通常用于测试与服务器的连接是否仍然生效,或者用于测量延迟值。如果设置了message,那么返回值为message。
切换数据库
- select index:切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。默认使用 0 号数据库。可以从标识看出当前是哪个数据库。
- select index:切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。默认使用 0 号数据库。可以从标识看出当前是哪个数据库。
服务端操作:
数据持久化:
snapshot快照持久化:保存的是所有数据,默认情况下,自动执行快照持久化,保存文件为.rbd
- 如何打开snapshot记录功能:
- 默认打开的
- 如何使用:
- 使用save:SAVE 命令执行一个同步保存操作,将当前 Redis 实例的所有数据快照(snapshot)以 RDB 文件的形式保存到硬盘。一般来说,在生产环境很少执行 SAVE 操作,因为它会阻塞所有客户端,保存数据库的任务通常由BGSAVE 命令异步地执行。然而,如果负责保存数据的后台子进程不幸出现问题时, SAVE 可以作为保存数据的最后手段来使用。
- 使用bgsave:与save不同的是会在后台进行备份,不会堵塞当前所有客户端。
- 如何恢复数据: 使用snapshot方式保存会有一个.rbd文件(config get dbfilename可获知是哪个文件),保存完毕后将这个文件复制到外面一份,当需要恢复的时候,关闭redis服务,将.rbd复制回来覆盖,重启redis服务即可
- 如何打开snapshot记录功能:
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:只在键已经存在时,才对键进行设置操作
- setnx key value :只有在 key 不存在时设置 键值对
- setex key seconds value:设置键值对的过期时间为seconds 秒
- setbit key offset value: 设置对应二进制的offset位为value【每个字符占八位,从高位到低位为0-7】
- setrange key offset value :用 value 参数覆盖给定 key 所储存的字符串值,从偏移量 offset 开始。
- mset key value [key value ...]:同时设置一个或多个 key‐value 对。
- msetnx key value [key value ...]:当所有键都不存在时,同时设置一个或多个 key‐value 对。只要一个给定 key 已存在, 全部设置操作都会取消(原子性)
- append key value:如果 key 已经存在并且是一个字符串, append命令将 value 追加到 key 原来的值的末尾。如果 key 不存在, append就简单地将给定 key 设为 value ,就像执行 SET key value 一样。 如果key不是一个字符串,将报错。
- set key value [EX seconds] [PX milliseconds] [NX|XX] :设置键值对,无论key是否存在,存在则覆盖
获取string:
- get key :获取对应键的键值
- mget key [key ...]:获取多个键的值
- getrange key start end:返回 key 中字符串值的子字符串,字符串的截取范围为[start , end]
- getset key newvalue:返回key的值,并设置key的值为newvalue
- getbit key offset: 获取字符串所代表的二进制位的offset数值
- 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 命令。
- 提示:
本文由神整理自网络,如有侵权请联系本站删除!
本站声明:
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!