数据库主要类型有对象数据库, 关系数据库,键值数据库等等,对象数据库太超前了,现阶段不提也罢。关系数据库就是平常说的Mysql,PostgreSQL这些熟的不能再熟的东西, 至于键值数据库如MemcacheDB,Tokyo Cabinet等。Redis本质上也是一种键值数据库,但它在保持键值数据库简单快捷特点的同时,又吸收了部分关系数据库的优点。 从而使它的位置处于关系数据库和键值数据库之间。Redis不仅能保存String类型的数据,还能保存Lists类型(有序)和Sets类型(无序)的数据。而且还能完成排序(sort)等高级功能, 在实现incr,setnx等功能的时候,保证了其操作的原子性,除此以外,还支持主从复制等功能。
Redis安装:
tar zxf redis-version.tar.gz
cd redis-version
make
由于没有make install 所以得把源代码目录里的关键文件手动复制到适当的位置:
cp redis.conf /etc/
cp redis-benchmark redis-cli redis-server /usr/bin/
如果内存情况比较紧张的话,需要设定内核的参数:
echo 1 > /proc/sys/vm/overcommit_memory
然后编辑redis.conf配置文件(/etc/redis.conf),按需求做出适当的调整,比如:
deamonize yes
logfile /dev/null
如果要记录日志的话,最好先调整loglevel到一个合适的级别,然后设定logfile,如果不需要,
则可以像上面这样直接丢弃/dev/null里,还有一点缺省情况下,数据文件dump.rdb会被生成到当前
目录,可能通过dir参数设定合适的目录。
此外,如果你决定把redis用于产品环境,还要注意maxmemory选项,因为Redis在启动时会把所有数
据加载到内存中,所以设定maxmemory相对安全。
接下来直接启动服务就Ok了,只有配置文件一个参数:
redis-server /etc/redis/conf
确认运行了之后,可以用redis-benchmark命令测试看看,还可以通过redis-cli命令实际操作一下,
redis-cli set foo bar
Ok
redis-cli get foo
bar
在设置键对就的值时,按照协议的规定是要提供数据大小这个参数的,上面的redis-cli命令之所以没有
提供这个参数是因为redis-cli本身进行了封装
可以通过telnet来验证这一点
telnet 127.0.0.1 6379
Trying 127.0.0.1 ...
Connected to localhost.localdomain(127.0.0.1)
Escape character is '^]'
set foo 3
bar
+OK
get foo
$3
bar
^]
telnet> quit
Connection closed
Redis安装:
tar zxf redis-version.tar.gz
cd redis-version
make
由于没有make install 所以得把源代码目录里的关键文件手动复制到适当的位置:
cp redis.conf /etc/
cp redis-benchmark redis-cli redis-server /usr/bin/
如果内存情况比较紧张的话,需要设定内核的参数:
echo 1 > /proc/sys/vm/overcommit_memory
然后编辑redis.conf配置文件(/etc/redis.conf),按需求做出适当的调整,比如:
deamonize yes
logfile /dev/null
如果要记录日志的话,最好先调整loglevel到一个合适的级别,然后设定logfile,如果不需要,
则可以像上面这样直接丢弃/dev/null里,还有一点缺省情况下,数据文件dump.rdb会被生成到当前
目录,可能通过dir参数设定合适的目录。
此外,如果你决定把redis用于产品环境,还要注意maxmemory选项,因为Redis在启动时会把所有数
据加载到内存中,所以设定maxmemory相对安全。
接下来直接启动服务就Ok了,只有配置文件一个参数:
redis-server /etc/redis/conf
确认运行了之后,可以用redis-benchmark命令测试看看,还可以通过redis-cli命令实际操作一下,
redis-cli set foo bar
Ok
redis-cli get foo
bar
在设置键对就的值时,按照协议的规定是要提供数据大小这个参数的,上面的redis-cli命令之所以没有
提供这个参数是因为redis-cli本身进行了封装
可以通过telnet来验证这一点
telnet 127.0.0.1 6379
Trying 127.0.0.1 ...
Connected to localhost.localdomain(127.0.0.1)
Escape character is '^]'
set foo 3
bar
+OK
get foo
$3
bar
^]
telnet> quit
Connection closed