Redis介绍:
?
一、介绍
?
redis 是一个开源的、使用
C语言编写的、支持网络交互的、可以基于内存也可以持久化的Key-Value
数据库。
?
redis的源码非常简单,只要有时间看看谭浩强的
C语言,在去看redis的源码能看懂50-60%。
?
redis目前最大的集群应该是新浪的应该。
?
redis目前是vmvaer来支持的,很多的开源软件都需要某些组织来支持的。如果一个开源软件没有金钱来支持的话很难走的持久
?
二、Redis和Memcache对比
持久化:以电商举例,session用memcache来做的,购物车用redis来做的,当你退出的时候会提示你购物车里的物品会在你退出后继续保存。相对来说memcache存储更单一化!
?
主从复制:redis的主从复制类似mysql的主从复制但是原理是不同的!
?
虚拟内存:说白了就是把内存里一些不用的东西放在硬盘上,最好不要用,降低效率,现在内存来说比较便宜。
?
Redis安装&基本操作:
?
一、Redis安装
?
1、检查配置环境
检查gcc是否安装,如果没有安装:yum -y install gcc
?
cd /opt/
wget http://download.redis.io/releases/redis-3.0.4.tar.gz
#这里下载可以登录官网查看最新的Redis
tar -xvf redis-3.0.4.tar.gz
make
make install
cd /opt/redis-3.0.4/src/
make test
?
?
安装中可能遇到的问题:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
?
Allocator
---------------------------------------------------------------------------------------------------------
Selecting a non-default memory allocator when building Redis is done by setting
the `MALLOC` environment variable. Redis is compiled and linked against libc
malloc by default, with the exception of jemalloc being the default on Linux
systems. This default was picked because jemalloc has proven to have fewer
fragmentation problems than libc malloc.
To force compiling against libc malloc, use:
% make MALLOC=libc
To compile against jemalloc on Mac OS X systems, use:
% make MALLOC=jemalloc
?
allocator(分配算符),如果有MALLOC这个环境变量,会有用这个环境变量的 去建立Redis。
而且libc 并不是默认的分配器,默认的是jemalloc!
因为jemalloc被证明有更少的fragmentation problems比libc。
?
但是如果你又没有jemalloc 而只有 libc 当然 make 出错。 所以加这么一个参数。
make MALLOC=libc
---------------------------------------------------------------------------------------------------------
?
3、配置redis
cp /opt/redis-3.0.4/utils/redis_init_script /etc/init.d/redis ? ?#复制管理脚本
chmod +x /etc/init.d/redis
mkdir /etc/redis
cp /opt/redis-3.0.4/redis.conf /etc/redis/6379.conf
?
4、修改redis启动模式
默认Redis启动的时候是启动在前台的,把他改为启动在后台
vim /etc/redis/6379.conf
daemonize no ?改为 daemonize yes
?
5、Redis加入到系统服务并设置为开机启动
首先修改Redis启动脚本:
vim /etc/init.d/redis
#chkconfig: 35 95 95 ?在第三行加上即可
?
添加系统服务:chkconfig --add redis
设置开机启动:chkconfig redis on
检查服务状态:chkconfig --list redis
?
6、指定日志存放位置&PID文件&
数据库文件存放位置(下一边写持久化)
vim /etc/redis/6379.conf
?
logfile "/var/log/redis.log" ?指定日志文件如果不指定就会在控制台输出
pidfile /var/run/redis_6379.pid
dir ./ ? 这个是指默认的持久化配置文件放在那里!建议修改下!
?
pidfile如果不修改使用默认的话就会报错:
原因是在/etc/init.d/redis里指定的默认PID是:PIDFILE=/var/run/redis_${REDISPORT}.pid?
但是默认配置文件:/etc/redis/6379.conf(咱们自己从解压包里复制的里的默认是:pidfile /var/run/redis.pid)
?
二、Redis基本操作
?
SET 设置Key
GET 判断Key的值
EXISTS 判断Key是否存在
KEYS * 显示所有的Key
DEL 删除指定Key
TYPE 获取Key类型
注:Redis是不区分大小写的,命令最好使用大写这样能区分是命令还是参数!
?
1、set的例子:
192.168.0.201:6379> SET hello hehe
OK
192.168.0.201:6379> GET hello
"hehe"
?
2、设置多个key value 然后使用使用keys * 去查看所有
192.168.0.201:6379> SET hello1 hehe1
OK
192.168.0.201:6379> SET hello2 hehe2
OK
?
192.168.0.201:637