redis的使用
通过 redis-server lconfig/redis.conf 来启动redis服务
redis-cli -p 6379 连接redis服务
ps -ef|grep redis 查看redis进程是否开启
shutdown exit用来关闭redis和退出
redis默认有16个数据库,默认使用第0个,可以使用 select n来切换到DB n;
keys * 查看当前数据库中所有的key
flushdb: 清空当前数据库中的键值对
flushAll:清空所有数据库的键值对redis
exists key:判断键是否存在
del key:删除键值对
move key db:将键值对移动到指定数据库
expire key second:设置键值对的过期时间
type key:查看value的数据类型
ttl key:查看key的过期剩余时间
关于TTL命令
1.当前key没有设置过期时间,所以会返回-1
2.当前key有设置过期时间,而且key已经过期,所以会返回-2
3.当前key有设置过期时间,而且key还没有过期,故会返回key的正常剩余时间
关于重命名RENAME 和 RENAMENX
RENAME key newkey 修改key的名称
RENAMENX key newkey 仅当newkey不存在时,将key改名为newkey.
五大数据类型
1.String
append key value 向指定的key的value后追加字符串
DECR/INCR key 将指定key的value数值进行+1/-1(仅对于数字)
INCR/DECRBY key n 按指定的步长对数值进行加减
STRLEN key 获取key保存值的字符串长度
GETRANGE key start end 按起止位置获取字符串(闭区间,起止位置都取)
SETRANGE key offset value 用指定的value替换key中offset开始的值
GETSET key value 将给定key的值设为value,并返回key的旧值
SETNX key value 仅当key不存在是进行set
SETEX key seconds value set键值并设置过期时间
MSET key1 value1 key1 value2 批量set键值对
MSET key1 value key2 value2 批量设置键值对,仅当参数中所有的key都不存在时执行
MGET key1 key2 批量获取多个key保存的值
PSETEX key milseconds value 和SETEX命令相似,但它以毫秒为单位设置key的生存时间
getSet key value 如果不存在值,则返回nil,如果存在值,获取原来的值,并设置新的值
Redis的持久化操作
使用rdb文件进行文件的恢复,在配置文件加上save 60 5
改变5次值就会进行快照读,将数据存储在rdb文件上.然后将rdb文件备份,修改为dump.rdb.bak。执行flushall操作,该操作会生成一个新的rdb文件.然后将之前备份的文件替换成这个rdb文件.重新启动,redis就会恢复.
rdb持久化
优点:
1.适合大规模的数据恢复
2.对数据的完整性要求不高
缺点:
1.需要一定的时间间隔进程操作!如果redis意外宕机了,最后一次修改数据就没有的了!
2.fork进程的时候,会占用一定的内存空间.`
aof持久化:采用日志的形式来记录每个写操作,并追加到文件中。redis重启会根据日志文件的内容将写指令从前到后执行一次次完成数据的恢复工作.
aof的配置
打开redis.conf文件,找到APPEND ONLY MODE 对应的内容
1.reids 默认关闭,开启需要手动把no改为yes
appendonly yes
2.指定本地数据库文件名,默认值为appendonly.aof
appendfilename “appendonly.aof”
3.指定更新日志条件
# appendfsync always
appendfsync everysec
# appendfsync no
always:同步持久化,每次发生数据变化会立刻写入到磁盘中。性能较差但数据完整性比较好(慢,安全)
everysec:出厂默认推荐,每秒异步记录一次(默认值)
no: 不同步
4.匹配重写触发机制
auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb
解说:当AOF文件是上次rewrite后大小的一倍且未见大于64M触发.
优点:
1.每一次修改都同步,文件的完整会更加好!
2.每秒同步一次,可能会丢失一秒的数据
3.从不同步,效率是最高的
缺点:
1.相对于数据文件来说,aof远远大于rdb,修复的速度也比rdb慢!
2.aof运行效率也要比rdb慢,所以我们redis默认的配置就是rdb持久化
注意:aof flushall 和 shutdown之后不会生成aof文件
Redis的消息订阅
1.Subscribe channel ;绑定某个频道
2.Publish channel msg:发送信息给绑定了这个频道的人
Redis主从复制
主从复制,是指将一台Redis服务的数据,复制到其他的Redos服务器,前者称为主节点(master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能从主节点到从节点。master以写为主,slave以读为主.