大数据面试简答题(六) -Redis

1、什么是redis

Redis是一个基于内存的使用C语言编写的key-value开源的NOSQL存储系统。
不支持SQL语句。

2、Redis持久化数据的方式有哪些

1、RDB 触发式的序列化
Save 5 2 (5秒钟 有两个动作便会触发序列化)
2、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

补充

  1. Redis默认有16个数据库
  2. 使用 select N (0-15)实现数据库的切换
  3. flushdb 清空一个数据库内的所有数据
  4. flushall 清空所有数据库内的所有数据
发布了112 篇原创文章 · 获赞 115 · 访问量 6973

猜你喜欢

转载自blog.csdn.net/hongchenshijie/article/details/105257251
今日推荐