Redis_2-Redis命令
Posted TheSkyCloud
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis_2-Redis命令相关的知识,希望对你有一定的参考价值。
单进程模型
Select
Dbsize
Flushdb: 情空当前库
Flushall: 通杀所有库
merz
Redis五大数据类型:
String: key-value
Hash:
List
Set
Zset sorted set: 有序集合
Http://redisdoc.com
Key:
keys
exists key
move key db
expire key秒钟: 给定的key设置过期时间
ttl k1 还能活多久
type key 查看key类型
String:
del key
set/get/del/append 基本操作
incr/decr/incrby/decrby 自增自减
getrance/setrance 获取设置指定区间的值
setex 到期用完终止
setnx set if not exist
mset/mget/msetnx
List:
lpush/rpush/lrange
lpop/rpop
lindex 按照索引下标获取元素
llen
lrem key 删除N个value
ltrim key 截取指定范围的值后再赋值给key
rpoplpush 源列表,目的列表
lset key index value
linsert key before/after 值1 值2
字符串链表,left\right都可以插入
Set:
单值多value: sadd/smembers/sismember
scard 获取集合中的元素个数
srem key value
srandmember key 随机出几个数
spop key 随机出栈
smove key1 key2
sdiff 差集
sinter 交集
sunion 并集
Hash:
KV模式不变,V是一个键值对
hset user id 11
hget user id
hmset customer id 11 name li4 age 26
hgetall customer
hdel user name
hlen
hexists customer id
hkey /hvals
hkeys customer
hvals customer
hincrby customer age 2
hincrbyfloat customer score 0.5
hsetnx
Zset:
zadd zset01
zrange zset01 0 -1 withscores
zrangebyscore key ( 不包含 LImit限定
zrem zset01 v5
zcard/zcount key score /zrank key values/zscore
zrevank key逆序下标值
zrevrange逆序排序
zrevrangebyscore key
redis.conf
config set requirepass ""
config get requirepass
Redis持久化
rdb: 时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,将快照文件直接读到内存
缺点: 最后一次持久化数据可能丢失
Fork复制一个与当前进程一样的全新进程,作为原进程的子进程
RDB
redis database
是整个内存的压缩过的Snapshot,可以配置符合快照触发条件的规则
一分钟内改了1万次
5分钟内改了10次
15分钟内改了1次
快照:
1 Save
2 Stop-writes-on-bgsave-error 数据一致性
3 rdbcompression 压缩算法
4 rdbchecksum CRC64数据校验
5 dbfilename
6 dir
如何触发RDB快照:
1 配置文件中默认的快照配置,冷备份
2 save \bgsave
3 flushall,产生dump,rdb
如何恢复:
1 将备份文件移动到redis安装目录并启动服务即可
2 config get dir
AOF
append only file
以日志形式记录每个写操作,redis重启的话就根据日志文件内容将写指令从前到后执行一次以完成数据的恢复工作
恢复:
redis-check-aof --fix appendonly.aof
appendonly
appendfilename
Appendfsync: Always 同步持久化 Everysec 异步操作 No
Rewrite===bgrewriteaof
查看命令:
ps -ef | gerp redis
lsof -i :6379
redis-server /myredis/redis.conf
redis-cli -p 6379
两者都开启,优先载入AOF
RDB只做后备用途
不AOF,Master-Slavee Replication
Redis事务
可以一次执行多个命令,本质是一组命令集合
一个事务中的所有命令序列化,按顺序串行执行命令而不会被其他命令插入,不许加塞
discard: 取消事务
exec: 执行
multi: 标记
unwatch: 取消监控
watch key : 监控
悲观锁:
乐观锁:提交版本必须大域记录当前版本才能执行更新
事务三阶段:
1 开启 multi
2 入队 将多个命令入队到事务中,接到这些命令并不会马上执行,而是放到等待执行的事务队列里面
3 执行 exec
事务三特性:
1 单独的隔离操作
2 没有隔离级别的概念
3 不保证原子性
Redis发布订阅:
进程间的消息通信
pub发送 sub接收
subscribe c1
oublish c1
Redis主从复制机制
Master/Slave
主句数据更新后根据配置和策略,自动同步到备份的master/slaver机制
master写
Slave读
1 配从不配主
2 从库配置: slaveof 主库 IP 主库端口
3 修改配置文件
4 一主而从
薪火相传
反客为主
slaveof no one
info replication
slaveof 127.0.0.1 6379
复制原理:
哨兵模式:
redis-sentinel /myredis/sentinel.conf
复制延时
以上是关于Redis_2-Redis命令的主要内容,如果未能解决你的问题,请参考以下文章
20200610 千锋教育 Redis 2. Redis 命令数据类型
Redis基础 -- Redis数据结构Redis通用命令Redis 的 key 的层次结构Redis5种数据类型及基本命令(StringListHashSetSortedSet)