解答Redis是否需要建立数据表(redis需要建表吗)
Redis作为一款高性能、高可用的内存数据库,越来越受到开发者的青睐,用来替代传统的MySQL等关系型数据库在中小型应用中用的越来越多。但是有些人质疑:Redis是否需要建立数据表?
答:不需要建立数据表。因为Redis的数据存储是结构化的,不需要经过特定的存储层进行存储表结构(关系表结构)。用户需要自行在应用层按照自己的要求进行存储和检索数据。
Redis有多种数据结构,比如string,hash, list,set,sorted set,所以不需要关心表格结构,理论上用Redis可以完成任何数据的结构化存储。也就是说,我们可以使用多种数据结构,就可以完成表格结构存储的功能,而且它还支持使用Pipeline批量操作,以提高服务器性能。换句话说,用Redis不需要建立数据表就可以完成存储,查询,更新,删除操作。
例如,用Redis实现自动补全功能,可以这样:
//初始化Redis连接
$redis = newRedis();$redis->connect('127.0.0.1', 6379);
//往Redis中存放一下用户信息:$redis->sAdd('Users','Jack');
$redis->sAdd('Users','Tom');$redis->sAdd('Users','Chris');
//自动补全功能的实现$autoPrefix = trim($_POST['prefix']);
$allUsers = $redis->sMembers('Users');
$autoComplete = array();$prefixLen = strlen($autoPreifx);
foreach($allUsers as $user){
if(substr($user,0,$prefixLen) === $autoPreifx) {
$autoComplete[] = $user; }
}echo json_encode($autoComplete);
可以看出,Redis可以通过不建立数据表的方式存储 ,实现数据库的服务能力,大大减少了代码量,提高了性能,使用Redis后,不必进行定义schema就可以完成功能,更方便更快捷。
使用Redis不需要建立数据表,redis简洁可读的数据格式以及支持数据类型,使得在开发中可以大幅度简化许多复杂的逻辑,提高了开发效率。