1.redis常用指令
1.1.对key操作的指令
1.查看所有key :keys *
2.为指定的key设置过期时间 :expire key seconds
3.查看key的剩余存活时间 :ttl key 返回-1表示永远存在 -2不存在该key
4.删除指定的key : del key 返回结果为删除的个数
5.判断key 是否存在 exists key
1.2.对redis数据库的操作
1.切换数据库 :select n
2.清空当前所在库 :flushdb
3.清空所有数据库 :flushall
1.3.对String类型的操作
1.存储指定的key 和 value : set key value
2.获取指定key 的value : get key
3.存储多个key和value : mset k1 v1 k2 v2 .......
4.获取多个key对应的value: mget k1 k2 k3 .....
5.如果指定的key 不存在则存入,如果存在则不存入 :setnx key value
6.存储指定的key 和 value 并设置过期时间 ; setex key second value
7.对指定的key 的 value 递增 :incr key
8.对指定的key 的 vlaue 递减 :decr key
1.4.hash哈希类型
它的value值为hash类型,hash类型由field和value组成。适合存储对象。
1.存储指定key的field和value值 : hset key field value
2.获取指定key的field对应的value值 : hget key field
3.获取在哈希表中指定 key 的所有字段和值 :hgetall key
4.获取指定key 所有的field名称 :hkeys key
5.获取指定key 所有的value : hvals key
6. 删除指定key对应的field值 :hdel key field
1.5.lsit列表类型
它的value类型为list列表类型,它的value可以是多个值,而且这些者可以重复,有序。一般使用在消息队列。
1.从左边存储指定key的对应列表值 :lpush key value value
2.移出并获取列表的第一个元素 :lpop key
3.获取列表指定范围内的元素 : lrang key start end
4.根据下标获取指定的元素 :lindex key index
5.修改指定坐标的元素 :lset key index value
1.6.set集合类型
它的value类型是一个set集合类型,这个集合类型元素无需,且不能重复。
1.向集合添加一个或多个成员 :sadd key value.....
2.返回集合中的所有成员 :smembers key
3.随机获取某个元素并移除 :spop key
4.返回给定所有集合的交集 :sinter k1 k2
1.7.sort set 有序集合
它的value类型为一个带分数的集合类型。按照分数排序。
1.往redis中添加有序集合 :zadd key score value score value .....
2.获取指定返回的元素 :zrang key start end
3.分数从高到低:ZREVRANGE k1 0 -1 WITHSCORES
2.redis的使用场景
1、热点数据的缓存: 减少对数据库的访问频率和减轻数据库的压力。
2. 限时业务的运用: 秒杀 存储登录者用户信息 存储短信验证码
3. 计数器相关问题: 点赞数 收藏数 播放量
4. 排行榜相关问题: sort set
5. 分布式锁:
3.redis持久化方式
持久化:把内存中的数据库保存到磁盘上,防止数据的丢失。
redis支持的持久化方式两种:
(1)RDB:快照 其实就是把数据以快照的形式保存在磁盘上,什么是快照呢,你可以理解成把当前时刻的数据拍成一张照片保存下来。
(2)AOF :日志追加 记录服务器接受的每个写入操作,当服务器启动时再次加载该日志,会把日志中的命令重新执行一遍。
3.1.rdb 快照方式
1).手动触发:1.save堵塞型保存 2.bgsave非堵塞型保存
执行完成时候如果存在老的RDB文件,就把新的替代掉旧的。我们的客户端可能都是几万或者是几十万,这种方式显然不可取。
2).自动触发 :
3.2.AOF 日志追加
修改配置文件:
查看日志:
aof模式会把每个写操作,记录到一个日志文件,当redis启动时会把该日志中每个指令重新执行一遍。 数据恢复速度慢。数据完整性高。 如果两者都使用,恢复数据时按照aof恢复。因为redis认为它的完整性比较好。大多数使用rdb.
4.redis集群模式
redis单机版,出现单机故障后,导致redis无法使用,如果程序使用redis,间接导致程序出错。
4.1.主从复制模式
一主多从模式。一个主节点,多个从节点,那么主节点可以负责:读操作,写操作。 从节点只能负责读操作,不能负责写操作。 这样就可以把读的压力从主节点分摊到从节点,以减少主节点的压力。
当主节点执行完写命令,会把数据同步到从节点。
搭建主从关系:
原则:配从不配主。
准备: 一主二从-----3台----开三个虚拟机--为了节省虚拟机,在一台主机开启三个redis服务。
7001主节点 7002和7003作为从节点
修改配置文件中的端口号和rdb文件名称
创建master-slave目录,并将修改后的配置文件放入