关于Redis的一些命令及随笔

前言:

Redis在我们的开发过程中如今已是无法替代的存在,有时候在开发过程中会对相关命令进行频繁地使用,以下是我个人对Redis的一些随笔,希望能够帮助到有需要的人
(注:一名初出茅庐的开发小生,技术上才疏学浅,如果有什么技术上理解偏差的地方,希望大家指出,多多包涵)


查看当前redis是否有启动
ps -ef|grep redis


启动redis
redis-clii -p 6379


redis的四大分类

KV键值、文档型数据库、列存储数据库、图关系数据库


常用命令:

keys * 查看序列

EXPIRE 字段名 时间 设置过期时间

ttl 字段名 查看多久过期

lpush mylist 1 2 3 4 5 设置list数组

LRANGE mylist 0 -1 查询所有

append 字段名 value 在字符串后面进行内容添加

STRLEN 字段名 查询string类型长度

INCR 字段名 添加

DECR 字段名 删除

SETRANGE 字段名 起始位置 值 在指定位置设置内容

setex 字段名 过期时间 值

mset k1 v1 k2 v2 同时设置多值

mget k1 k2 k3 同时查询

FLUSHdb 清空所有线程

SMEMBERS key 查询set类型

sadd key value 设置set类型

SRANDMEMBER key value 随机从key中取出value个值

spop key 随机出栈

SMOVE key1 key2 value 移动数据


HASH类型(KV类型,V为键值对)


hmset customer id 11 name li4 age 22 设置几大类型

HEXISTS customer id 判断customer中是否含有id字段

HKEYS customer 查询customer中的所有字段

HVALS customer 查询customer中所有字段的值


关于持久化


SNAPSHOTTING RDB配置信息

RDB:分片持久化,保存的是dump.rdb文件

注意:当你执行flushall会把所有内容清空,此时dump.rdb是空的,当你shutdown关掉redis的时候会自动持久化到dump.rdb中
当你启动redis时,持久化的数据会自动加载到redis中

save 立即存储,其他不管,全部阻塞
bgsave redis 会在后台一部进行快照操作,快照同时还可以响应客户端请求,可以通过lastsave命令获取最后一次成功执行快照的时间


AOF(采用文件追加)


重新恢复appendonly.aof:
redis-check-aof --fix appendonly.aof

重写机制:当AOF文件的大小超过所设定的阈值,redis就会启动AOF文件的内容压缩,只保留可以恢复数据的最小指令集,使用命令:bgrewrlteaof

触发机制:Redis会记录上次重写时的AOF大小,默认配置是当AOF文件大小是上次rewrite后大小的一倍且文件大于64M时触发

appendfsync always 每写操作同步
appendfsync everysec 每秒同步


事务


事务三阶段
开启:以MULTI开始一个事务
入队:将多个命令入队到事务中,接到这些命令并不会立即执行,而是放到等待执行的事务队列里面
执行:由EXEC命令触发事务

事务的一些命令
MULTI 开启事务
EXEC 执行事务,批处理(一旦执行,所有的监控锁都会被取消)
DISCARD 取消本次事务
WATCH 监视一个或多个key
UNWATCH 取消watch命令对所有key的监视

watch监控(类似乐观锁,一旦有任何key的值发生了变化,EXEC执行的事务都将被放弃,返回Nullmuti-bulk应答通知失败 )
悲观锁/乐观锁(类似表锁/行锁)


主从复制


info replication 查看相关信息

SLAVEOF 端口号 跟从相关节点

主从复制的两种模式

薪火相传:上一个slave可以是下一个slave的Master

反客为主:主机挂掉,从机 选举为主机


复制原理


全量复制:slave服务在接收到数据库文件数据后,将其存盘并加载到内存中
增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步


哨兵模式(反客为主自动版)

touch sentinel.conf(新建)
sentinel monitor host6379 127.0.0.1 6379 1(当6379挂掉之后,谁的票数超过1票,则竞选为主机)


Redis集群


cluster-enabled yes 打开集群模式

cluster-config-file nodes-6379.conf 设置节点配置文件名

cluster-node-timeout 15000 设定节点失联时间,超过该时间,集群自动进行主从切换

通过cluster-nodes 查看集群信息

可以通过{}来定义组的概念

cluster keyslot 计算键key应该放在哪个槽上

cluster countkeysinslot 返回槽slot目前包含的键值对数量

cluster getkeysinslot 返回count个slot槽中的键

redis-cli -p 6381 shutdown 关掉6381节点

redis-server myRedis/redis6381.conf 启动节点6381

cluster-require-full-coverage:16384个slot都正常的时候才能对外提供服务(slot:插槽)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值