linux下安装redis+redis主从配置+redis基本命令
来源:互联网 发布:平行宇宙 知乎 编辑:程序博客网 时间:2024/03/29 22:16
linux安装redis
redis安装步骤如下:
linux命令下载:
wget http://download.redis.io/releases/redis-3.2.9.tar.gz
wget –p /java/redis “chainUrl”;指定下载目录
1、下载redis安装包。下载地址为https://redis.io/download
下载下来的文件为redis-3.2.9.tar.gz
2、通过WinSCP工具把安装包上传到linux系统上面
创建一个redis的目录存放安装包和编译之后的文件
mkdir redis
3、解压安装包
tar -zxvf redis-3.2.9.tar.gz
4、编译安装
进入redis解压之后的目录redis-3.2.9
cd redis-3.2.9
然后执行make命令进行编译
make
编译完成之后使用ls或者ll命令查看当前文件目录下的文件目录和文件夹
1. 如果输入make提示 :make: cc:命令未找到
原因:
未安装gcc
解决方法:
安装gcc
[ckl@localhost ~]$ yum -y install gcc automake autoconf libtool make
ls
可以看见多了一个src的目录。
[root@localhost redis-3.2.9]# ls
00-RELEASENOTES CONTRIBUTING deps Makefile README.md runtest
runtest-sentinel src utils
BUGS COPYING INSTALL MANIFESTO redis.conf runtest-cluster
sentinel.conf tests
5、把启动需要的文件移动到一个相对层次比较低的目录,目的是为了写启动脚本
的时候比较方便
首先在redis目录下新建一个conf目录,然后把启动需要的文件启动到conf目录下。
mkdir /home/user/redis/conf
cd src
cp redis-server /home/user/redis/conf
cp redis-cli /home/user/redis/conf
cp redis-benchmark /home/user/redis/conf
cp ../redis.conf /home/user/redis/conf
6、启动停止redis
cd/home/user/Redis/conf
启动 ./redis-server filePath(redis.conf)
后台启动: ./redis-server &
停止 ./redis-cli -p 6379 shutdown
使用./redis-cli连接redis进行测试redis是否启动成功
[vigoss@localhost local]$ ./redis-cli
127.0.0.1:6379> set name testname
OK
127.0.0.1:6379> get name
"testname"
测试成功
1.直接启动
进入redis根目录,执行命令:
#加上‘&’号使redis以后台程序方式运行
1
./redis-server &
2.通过指定配置文件启动
可以为redis服务启动指定配置文件,例如配置为/etc/redis/6379.conf
进入redis根目录,输入命令:
1
./redis-server /etc/redis/6379.conf
#如果更改了端口,使用`redis-cli`客户端连接时,也需要指定端口,例如:
1
redis-cli -p 6380
7、修改redis.conf配置文件,使得可以远程访问不受限制。如果需要限制可以访问redis的权限,可以使用bind指定ip
修改/home/user/redis/conf目录下的redis.conf文件
viredis.conf
找到‘daemonize no’改为‘daemonize yes‘
找到# bind 127.0.0.1 ::1并注释掉
然后退出保存
8、配置redis为开机启动,需要写一个redis的启动停止脚本。
cd/etc/init.d/
vi redis
里面的具体代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#! /bin/bash
# chkconfig: 345 10 90
# description: Start and Stop redis
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
# redis端口号
REDISPORT=6379
# redis-server所在目录的绝对路径
EXEC=/home/java/redis/conf/redis-server
# redis-cli所在目录的绝对路径
REDIS_CLI=/home/java/redis/conf/redis-cli
#指定redis启动之后pid文件存放路径,默认是这个路径
PIDFILE=/home/java/redis/conf/redis_6379.pid
# redis.conf所在目录的绝对路径
CONF="/home/java/redis/conf/redis.conf"
#AUTH="password"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "Process is already running or crashed."
else
echo "Starting Redis server..."
$EXEC $CONF &
#$EXEC $CONF后边加一个&,表示让redis作为后台服务启动,否则该服务会独占输入屏。
fi
if [ "$?"="0" ]
then
echo "Redis is running..."
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "Process is not running."
echo "nothing todo."
else
PID=$(cat $PIDFILE)
echo "Stopping..."
$REDIS_CLI -p $REDISPORT SHUTDOWN
sleep 2
while [ -x $PIDFILE ]
do
echo "Waiting for Redis to shutdown..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
exit 1
esac
来自CODE的代码片
snippet_file_0.txt
先按下ESC退出编辑模式,然后输入:wq 保存并退出,:wq!
其中脚本最开始的这个必须要加,不然没法加入开机启动,而且chkconfig一定要设置为345,
如果设置为2345会出现服务redis不支持chkconfig现象。
#! /bin/bash
# chkconfig: 345 10 90
然后设置权限
chmod 755 redis
chmod 755 设置用户的权限为:
1.文件所有者可读可写可执行 --7
2.与文件所有者同属一个用户组的其他用户可读可执行--5
3.其它用户组可读可执行 --5
加入开机启动
chkconfig redis on
重启 reboot now
ps -ef | grep redis
[vigoss@localhost ~]$ ps -ef | grep redis
root 748 1 0 19:15 ? 00:00:00 /usr/redis/redis-server *:6379
vigoss 2698 2007 0 19:16 pts/0 00:00:00 grep --color=auto redis
如果出现上面信息,说明redis开机启动设置成功。
以后启动停止,重启也可以使用如下命令,比较方便。
/etc/init.d/redis start
/etc/init.d/redis restart
/etc/init.d/redis stop
Redis服务器设置密码后,使用service redis stop会出现以下信息:
service redis stop
Stopping ...
OK
(error) NOAUTH Authentication required.
Waiting for Redis to shutdown ...
可以使用ps -ef | grep redis 查进程号 然后kill掉,如果在deamon下还需要去删除pid文件,有点繁琐。
解决办法:
用redis-cli密码登陆(redis-cli -a password)就OK了。
再用ps -ef | grep redis可以看到redis进程已经正常退出。
修改redis服务脚本,加入如下所示的红色授权信息即可:
vi /etc/init.d/redis
$CLIEXEC -a "password" -p $REDISPORT shutdown(文件第37行)
redis安装就到这里
查看主从信息
auth “password”
info replication
[Redis] redis-cli 命令总结
1、连接操作相关的命令
quit:关闭连接(connection)
auth:简单密码认证
2、对value操作的命令
exists(key):确认一个key是否存在
del(key):删除一个key
type(key):返回值的类型
keys(pattern):返回满足给定pattern的所有key
randomkey:随机返回key空间的一个key
rename(oldname, newname):将key由oldname重命名为newname,若newname存在则删除newname表示的key
dbsize:返回当前数据库中key的数目
expire:设定一个key的活动时间(s)
ttl:获得一个key的活动时间
select(index):按索引查询
move(key, dbindex):将当前数据库中的key转移到有dbindex索引的数据库
flushdb:删除当前选择数据库中的所有key
flushall:删除所有数据库中的所有key
3、对String操作的命令
set(key, value):给数据库中名称为key的string赋予值value
get(key):返回数据库中名称为key的string的value
getset(key, value):给名称为key的string赋予上一次的value
mget(key1, key2,…, key N):返回库中多个string(它们的名称为key1,key2…)的value
setnx(key, value):如果不存在名称为key的string,则向库中添加string,名称为key,值为value
setex(key, time, value):向库中添加string(名称为key,值为value)同时,设定过期时间time
mset(key1, value1, key2, value2,…key N, value N):同时给多个string赋值,名称为key i的string赋值value i
msetnx(key1, value1, key2, value2,…key N, value N):如果所有名称为key i的string都不存在,则向库中添加string,
名称key i赋值为value i
incr(key):名称为key的string增1操作
incrby(key, integer):名称为key的string增加integer
decr(key):名称为key的string减1操作
decrby(key, integer):名称为key的string减少integer
append(key, value):名称为key的string的值附加value
substr(key, start, end):返回名称为key的string的value的子串
4、对List操作的命令
rpush(key, value):在名称为key的list尾添加一个值为value的元素
lpush(key, value):在名称为key的list头添加一个值为value的 元素
llen(key):返回名称为key的list的长度
lrange(key, start, end):返回名称为key的list中start至end之间的元素(下标从0开始,下同)
ltrim(key, start, end):截取名称为key的list,保留start至end之间的元素
lindex(key, index):返回名称为key的list中index位置的元素
lset(key, index, value):给名称为key的list中index位置的元素赋值为value
lrem(key, count, value):删除count个名称为key的list中值为value的元素。
count为0,删除所有值为value的元素,count>0从头至尾删除count个值为value的元素,count<0从尾到头删除|count|个值为value的元素。
lpop(key):返回并删除名称为key的list中的首元素rpop(key):返回并删除名称为key的list中的尾元素
blpop(key1, key2,… key N, timeout):lpop命令的block版本。
即当timeout为0时,若遇到名称为key i的list不存在或该list为空,则命令结束。
如果timeout>0,则遇到上述情况时,等待timeout秒,如果问题没有解决,则对keyi+1开始的list执行pop操作。
brpop(key1, key2,… key N, timeout):rpop的block版本。参考上一命令。
rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部
5、对Set操作的命令
sadd(key, member):向名称为key的set中添加元素member
srem(key, member) :删除名称为key的set中的元素member
spop(key) :随机返回并删除名称为key的set中一个元素
smove(srckey, dstkey, member) :将member元素从名称为srckey的集合移到名称为dstkey的集合
scard(key) :返回名称为key的set的基数
sismember(key, member) :测试member是否是名称为key的set的元素
sinter(key1, key2,…key N) :求交集
sinterstore(dstkey, key1, key2,…key N) :求交集并将交集保存到dstkey的集合
sunion(key1, key2,…key N) :求并集
sunionstore(dstkey, key1, key2,…key N) :求并集并将并集保存到dstkey的集合
sdiff(key1, key2,…key N) :求差集
sdiffstore(dstkey, key1, key2,…key N) :求差集并将差集保存到dstkey的集合
smembers(key) :返回名称为key的set的所有元素
srandmember(key) :随机返回名称为key的set的一个元素
6、对zset(sorted set)操作的命令
zadd(key, score, member):向名称为key的zset中添加元素member,score用于排序。如果该元素已经存在,则根据score更新该元素的顺序。
zrem(key, member) :删除名称为key的zset中的元素member
zincrby(key, increment, member) :如果在名称为key的zset中已经存在元素member,则该元素的score增加increment;
否则向集合中添加该元素,其score的值为increment
zrank(key, member) :返回名称为key的zset(元素已按score从小到大排序)中member元素的rank(即index,从0开始),
若没有member元素,返回“nil”
zrevrank(key, member) :返回名称为key的zset(元素已按score从大到小排序)中member元素的rank(即index,从0开始),
若没有member元素,返回“nil”
zrange(key, start, end):返回名称为key的zset(元素已按score从小到大排序)中的index从start到end的所有元素
zrevrange(key, start, end):返回名称为key的zset(元素已按score从大到小排序)中的index从start到end的所有元素
zrangebyscore(key, min, max):返回名称为key的zset中score >= min且score <= max的所有元素
zcard(key):返回名称为key的zset的基数zscore(key, element):返回名称为key的zset中元素element的
score zremrangebyrank(key, min, max):删除名称为key的zset中rank >= min且rank <= max的所有元素
zremrangebyscore(key, min, max) :删除名称为key的zset中score >= min且score <= max的所有元素
zunionstore / zinterstore(dstkeyN, key1,…,keyN, WEIGHTS w1,…wN, AGGREGATE SUM|MIN|MAX):对N个zset求并集和交集,
并将最后的集合保存在dstkeyN中。对于集合中每一个元素的score,在进行AGGREGATE运算前,都要乘以对于的WEIGHT参数。
如果没有提供WEIGHT,默认为1。默认的AGGREGATE是SUM,即结果集合中元素的score是所有集合对应元素进行SUM运算的值,而MIN和MAX是指,
结果集合中元素的score是所有集合对应元素中最小值和最大值。
7、对Hash操作的命令
hset(key, field, value):向名称为key的hash中添加元素field<—>value
hget(key, field):返回名称为key的hash中field对应的value
hmget(key, field1, …,field N):返回名称为key的hash中field i对应的value
hmset(key, field1, value1,…,field N, value N):向名称为key的hash中添加元素field i<—>value i
hincrby(key, field, integer):将名称为key的hash中field的value增加integer
hexists(key, field):名称为key的hash中是否存在键为field的域
hdel(key, field):删除名称为key的hash中键为field的域
hlen(key):返回名称为key的hash中元素个数
hkeys(key):返回名称为key的hash中所有键
hvals(key):返回名称为key的hash中所有键对应的value
hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value
8、持久化
save:将数据同步保存到磁盘
bgsave:将数据异步保存到磁盘
lastsave:返回上次成功将数据保存到磁盘的Unix时戳
shundown:将数据同步保存到磁盘,然后关闭服务
9、远程服务控制
info:提供服务器的信息和统计
monitor:实时转储收到的请求
slaveof:改变复制策略设置
config:在运行时配置Redis服务器
redis主从复制配置
1、修改slave的redis.conf配置文件:
slaveof 192.168.0.100 6379 (映射到主服务器上)
masterauth 123456 #主服务器配置的密码
重启主服务、从服务器
# service redis stop
# service redis start
然后执行./redis-cli进入redis客户端执行info命令
查看主从信息
auth “password”
info replication
2测试:
主服务:
Set key value
Get key
从服务:
Get key
- linux下安装redis+redis主从配置+redis基本命令
- Linux下安装Redis和主从配置
- linux下如何安装配置redis及主从配置
- linux下如何安装配置redis及主从配置
- CentOS Linux下 redis 下载、安装、配置、主从集群配置
- CentOS Linux下 redis 下载、安装、配置、主从集群配置
- linux下如何安装配置redis及主从配置
- linux下如何安装配置redis及主从配置
- redis 主从安装配置
- Redis主从复制基本配置
- Linux下安装配置Redis
- Linux下安装配置Redis
- Linux下安装配置Redis
- linux下安装配置redis
- Linux下Redis安装配置
- Redis--Linux下安装Redis
- Redis安装及主从配置
- Redis主从服务器安装配置
- 扩展版扫雷小游戏
- 12.4-12.8课堂作业-临摹米家有品
- 学习OpenCV2——绘制基本图形及文字
- codeforces 894B. Ralph And His Magic Field
- 编程伊始
- linux下安装redis+redis主从配置+redis基本命令
- Android安全攻防战,反编译与混淆技术完全解析(下)
- 震撼!多么豪爽的语气! 1966年5月10日《人民日报》中国政府对美的“四点声明”
- GPG入门教程
- C++ STL之vector用法总结
- 构建Linux根文件系统(五)
- 中缀表达式转后缀表达式 && 后缀表达式计算
- 21分钟 MySQL 入门教程
- 《笔记》iOS deviceToken的获取时机及推送相关