关系型数据库磁盘和内存交互太慢,关键在于内存和磁盘频繁交互。io过多。因为维护在内存,而索引数据在磁盘。
解决办法:所有东西一股脑甩在内存,就是内存数据库产生。
redis特点:
- 开源的(BSD协议),使用ANSI C 编写,基于内存的且支持持久化,高性能的Key-Value的NoSQL数据库
- 支持数据结构类型丰富,有如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。
- 丰富的支持主流语言的客户端,C、C++、Python、Erlang、R、C#、Java、PHP、Objective-C、Perl、Ruby、Scala、Go、JavaScript
- 用途:缓存(StackOverFlow)、数据库(微博)、消息中间件(微博)
对于Redis安装,在学习javaee时就安装过,不过那时安装在win10上,这次使用Redis版本为2.8,安装的操作系统为CentOS6.5
可视化客户端RedisDesktopManager
redis要编译环境支持,所以要安装gcc和tcl
yum -y install gcc tcl
![](https://img.haomeiwen.com/i13219358/3e22e63ec450e591.png)
cd后进行make编译
![](https://img.haomeiwen.com/i13219358/8158b43690d95769.png)
结束后就可以在文件夹/opt/sxt/redis看见了。但是每次启动虚拟机要启动一次服务器,那么如何方便的启动呢?
先把路径配置到环境变量中,因为最终启动都要进入到bin目录来执行
![](https://img.haomeiwen.com/i13219358/b3f6d90765dcad25.png)
![](https://img.haomeiwen.com/i13219358/defed1e1b543a8e3.png)
![](https://img.haomeiwen.com/i13219358/9dfd01bd8022a401.png)
进入redis中的utils,执行脚本,这脚本要在环境变量配置后才可以执行
![](https://img.haomeiwen.com/i13219358/32f319cf14e3156a.png)
默认端口6379
![](https://img.haomeiwen.com/i13219358/8c9f5d760319dd45.png)
please select the redis executable path,就是从环境变量找来的,如果没有配置就是空
![](https://img.haomeiwen.com/i13219358/ebfd470d78bafe9e.png)
Redis key 值是二进制安全的,这意味着可以用任何二进制序列作为key值,从形如”foo”的简单字符串到一个JPEG文件的内容都可以。空字符串也是有效key值(key值都是string类型)
Key取值原则
- 键值不需要太长,消耗内存,且在数据中查找这类键值的计算成本较高
-
键值不宜过短,可读性较差
Redis支持位图(bitmap)
位图不是真正的数据类型,它是定义在字符串类型中
一个字符串类型的值最多能存储512M字节的内容
位上限:2(9+10+10+3)=232b
网友评论