概述
前言:
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:插槽)
最后
以上就是幸福砖头为你收集整理的关于Redis的一些命令及随笔的全部内容,希望文章能够帮你解决关于Redis的一些命令及随笔所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复