1、什么是redis
Redis是一个基于内存的使用C语言编写的key-value开源的NOSQL存储系统。不支持SQL语句。
2、Redis持久化数据的方式有哪些
- RDB 触发式的序列化
Save 5 2 (5秒钟 有两个动作便会触发序列化)
- AOF 日志形式的序列化
默认:一秒钟存储一次
3、解决IT行业数据读取瓶颈的终极方案
读写分离
4、Redis如何实现读写分离?
Redis本身支持读写分离,主节点可以读数据、可以写数据、从节点只能读数据。配置redis的主从复制机制可实现读写分离。
在从节点的配置文件中: 配置 slaveof 主机名 端口
5、介绍哨兵机制
哨兵机制解决了当主节点宕机导致的业务数据无法写入redis的问题。
在redis的主从复制结构中,若没有哨兵机制,主节点宕机,将无法写数据到redis集群。
配置哨兵机制,当主节点宕机后,哨兵会在原本为从节点的服务器中选取一个作为主节点,接受外部数据的写入。以此实现当主节点宕机后redis依然可以写入数据的功能。
redis字符串操作必须掌握
添加字符串 |
set hello world |
设置多个KV |
mset AA AAA BB BBB CC CCC |
设置过期时间 |
setex hello1 5 word1 |
查询字符串 |
get hello |
查询多key |
mget hello hello2 hello3 |
查询长度 |
strlen hello |
修改字符串 |
set hello world2 |
删除字符串 |
del hello |
Hash必须掌握
添加一个hash列表 |
hset hkey1 name zhangsan |
一次设置多个值 |
hmset hkey3 name wangwu age 20 sex 1 |
查看数据 |
hget hkey1 name |
查询key内所有的字段 |
hkeys hkey3 |
查询key的数据量 |
hlen hkey3 |
查询某一key内多字段的值 |
hmget hkey3 name age |
修改数据 |
hset hkey1 name zhangsan2 |
删除key中的数据 |
hdel hkey3 sex |
List必须掌握
添加一个或多个值到列表 |
lpush lkey1 zhangsan lisi |
向已经存在的列表中插入数据(右边插入) |
rpush lkey1 AA BB |
查询list中所有数据 (-1表示所有) |
lrange lkey1 0 -1 |
通过索引查询数据 |
lindex lkey1 0 |
通过索引修改数据 |
lset lkey1 5 eee |
删除指定key数据 |
del lkey1 |
移出并获取列表的第一个元素 |
lpop lkey1 |
移出并获取列表的最后一个元素 |
rpop lkey1 |
移除列表的最后一个元素,并将该元素添加到另一个列表并返回 |
rpoplpush lkey1 lkey2 |
Set 必须掌握
向集合添加一个或多个数据 |
sadd skey1 zhangsan lisi |
查询集合所有数据 |
smembers skey1 |
查询两个集合的差值 |
sdiff skey1 skey2 |
查询两个集合交集 |
sinter skey1 skey2 |
查询并集 |
sunion skey1 skey2 |
将数据在一个集合移动到另一个集合 |
smove skey1 skey2 zhangsan |
移除结果中的某个数据 |
srem skey2 zhangsan |
对Key的常用操作
查询所有符合模式的key |
Keys * |
查询key对应数据的类型 |
Type hkey1 |
查询剩余过期时间(秒) |
ttl hkey1 |
对key进行重命名 |
Rename hkey1 hkey10 |
删除存在的key |
del BB |
Redis默认有16个数据库
使用 select N (0-15)实现数据库的切换
flushdb 清空一个数据库内的所有数据
flushall 清空所有数据库内的所有数据