我们通过执行./src/redis-server开启redis服务,然后输入如下命令可以测试Redis是否正常工作:
$ cd src
$ ./redis-cli
redis> ping 测试服务是否开启
PONG 服务开启时可以看到PONG的回应
redis> set foo bar 将key=foo,value=bar放入redis中
OK 成功返回OK
Redis> get foo 获得key=foo的value
"bar" 成功返回”bar”
至此Redis安装一切正常o(^_^)o
Redis使用入门
一、Redis启动和关闭
为了方便管理可以在/usr/local/redis目录中添加3个文件夹
$ mkdir /usr/local/redis/etc
$ mkdir /usr/local/redis/var
$ cp redis-server redis-cli redis-benchmark redis-stat /usr/local/redis/bin/
$ cp redis.conf /usr/local/redis/etc/
因为改变了redis.conf文件的位置,所以启动方法如下
$mkdir /usr/local/redis/bin
$./redis-server ../etc/redis.conf
启动后可通过ps –ef|preg redis来查看Rredis是否启动成功
关闭Redis通过
$./redis-cli 启动客户端程序
$->shutdown 关闭当前Redis
$->exit 退出客户端程序
二、配置参数
在我们成功安装Redis后,我们直接执行redis-server即可运行Redis,此时它是按照默认配置来运行的(默认配置甚至不是后台运行)。我们希望Redis按我们的要求运行,则我们需要修改配置文件,Redis的配置文件就是我们上面第二个cp操作的redis.conf文件,目前它被我们拷贝到了/usr/local/redis/etc/目录下。修改它就可以配置我们的server了。如何修改?下面是redis.conf的主要配置参数的意义:
daemonize:是否以后台daemon方式运行
pidfile:pid文件位置
port:监听的端口号
timeout:请求超时时间
loglevel:log信息级别
logfile:log文件位置
databases:开启数据库的数量
save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
rdbcompression:是否使用压缩
dbfilename:数据快照文件名(只是文件名,不包括目录)
dir:数据快照的保存目录(这个是目录)
appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
下面是一个略做修改后的配置文件内容:
daemonize yes
pidfile /usr/local/redis/var/redis.pid
port 6379
timeout 300
loglevel debug
logfile /usr/local/redis/var/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /usr/local/redis/var/
appendonly no
appendfsync always
glueoutputbuf yes
shareobjects no
shareobjectspoolsize 1024
将上面内容写为redis.conf并保存到/usr/local/redis/etc/目录下
然后在命令行执行:
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
即可在后台启动redis服务,这时你通过
telnet 127.0.0.1 6379
即可连接到你的redis服务
三、客户端程序
其中Jedis是官方主推的Java客户端,架构思路清晰,小巧,下面是用Jedis客户端访问Redis
版本:jedis-1.5.2.jar
代码示例:
String host ="192.168.169.132";
// host提供Redis服务的主机IP,Redis提供默认端口6379
Jedis jedis = new Jedis(host);
jedis.ping();// return PONG,测试主机服务是否正常启动
jedis.set("hello", "world");// return OK
jedis.get("hello"); // return "world"
jedis.shutdown();// 关闭该Redis
根据现在有环境进行的测试结果(仅供参考):
单客户端,单线程向Redis服务器中添加10,0000key用时20秒左右
单客户端,10线程向Redis服务器中添加10,0000key用时6秒左右
四、同步机制
Redis到目前使用的版本为止只支持master-slave(主-从)同步,不支持master-master (主-主)同步。
1.设置同步:
在Slave机器的redis.conf配置文件中修改
# slaveof <masterip> <masterport>
例如:slaveof 192.168.169.132 6379
<masterip>主机IP
<masterport>主机端口
2.多个从机,可以让多个从机指向一个相同的主机。
3.串联同步,可以让一个从机指向一个主机,让另一个从机指向刚才的从机,从而实现串联; 从机只同步其主机的数据。
注:切忌不可以让主机和从机相互指向对方,否则将无法同步。
附 录
一、常用命令格式
启动Redis服务:
1.默认启动:读取src下的redis.conf配置文件启动redis
$./redis-server
2.指定配置文件启动:
$ ./redis-server ../etc/redis.conf (使用指定位置的配置文件来启动Redis)
启动Redis客户端:
1.启动默认客户端,连接到默认src下的redis.conf配置文件中地址的Redis
$ ./redis-cli
2.连接到指定地址的Redis
$ ./redis-cli –h 192.168.169.132
3. 连接到指定地址和端口的Redis
$ ./redis-cli –h 192.168.169.132 –p 6380