以下关于执行命令的当前执行目录为redis-4.0.1的安装根目录下。
如果相关依赖没有安装,需要补充安装。
例如:
yum install gcc-c++
yum install -y tcl
yum install wget
下载、解压、编译
$ wget http://download.redis.io/releases/redis-4.0.1.tar.gz
$ tar xzf redis-4.0.1.tar.gz
$ cd redis-4.0.1
$ make
redis有两种启动方式,直接运行./src/redis-server以前端模式启动,该方法需要一直保持ssh连接
一旦关闭则redis服务结束,不推荐使用。
推荐将启动redis作为后台精灵进程执行,
修改redis-4.0.1目录下的redis.conf中daemonize为yes,
并以以下的命令来启用。
启用redis
./src/redis-server redis.conf
关闭redis
./src/redis-cli shutdown
查询redis进程
ps -ef | grep -i redis
启用redis客户端
./src/redis-cli
基本用法:
String数据类型:
设置变量set key name
获取变量
get key
获取变量后再设置
getset key
删除变量
del key
变量列表
keys *自增运算
incr key
自减运算
decr key
指定自增(自减)大小运算
incrby key [自增大小]
(decrby key [自减大小])
拼接操作
append key [拼接内容]
Hash数据类型(其中xxx为自定义map对象名):
设置键值对map对象:
hset xxx key value
获取键值对map对象某个key的值:
hget xxx key
同时设置map对象多个键值对:
hmset xxx key1 value1 key2 value2 ...
同时获取map对象多个key的值:
hmget xxx key1 key2 ...
一次获取所有属性的值:
hgetall xxx
删除map对象多个key:
hdel xxx key1 key2 ...
或者删除整个map对象:
del xxx
key的数值自增自减:
hincrby xxx key [自增数字]
hdecrby xxx key[自减数字]
判断map对象中是否存在某个key:
hexists xxx key
返回map对象key的长度大小:
hlen xxx
返回map对象所有key的名称:
hkeys xxx
返回map对象所有value的值:
hvals xxx
list数据类型(其中xxx为自定义数组名):
从左边插入数值(或者使用lpushx):
lpush xxx value1 value2 ...
从右边插入数值:
rpush xxx value1 value2 ...
查看数组数值情况:
lrange xxx 起始下标 结束下标
(如果起始下标为0,结束下标为-1则表示查看全部)
移除数组顶部数值:
lpop xxx
移除数组尾部数值:
rpop xxx
返回数组长度大小:
llen xxx
删除多个重复值:
lrem xxx 数量 指定值(从顶部往尾部顺序删除)
lrem xxx -数量 指定值(从尾部往顶部顺序删除)
指定下标插入新值:
lset xxx 下标 新值
在指定值之前(之后)前插入新值:
linsert xxx before(after) 指定值 新值
将尾部的值弹出并填充到顶部(可以是其他数组)去:
rpoplpush xxx xxx
(该命令可用于消息通知处理是否成功进行归类)
set数据类型(其中xxx为自定义set对象):
添加set数值:
sadd xxx value1 value2 ...
移除set数值:
srem xxx value1 value2 ...
查看set数值:
smembers xxx
判断set中是否包含指定值:
sismember xxx 指定值
两个set中的差集运算:
sdiff xxx1 xxx2
两个set中的交集运算:
sinter xxx1 xxx2
两个set进行并集:
sunion xxx1 xxx2
如果需要远程使用,需要在 /etc/sysconfig/iptables 防火墙配置中打开6379端口(云服务器需要配置安全组规则)
service iptables restart
另外,如果使用telnet xxx.xxx.xxx.xxx 6379 无法ping通远程redis主机
在redis.conf中有个配置 bind 127.0.0.1 , 默认只有本机允许访问,将该行注释
由于redis有默认开启保护模式,需要满足以下条件之一才可以正常远程访问:
已经运行时的解决方法:
启动redis-cli
./src/redis-cli
127.0.0.1:6379>config set protected-mode no
关闭后的解决方法:
1.关闭保护模式
临时关闭保护模式:
开启redis是加入参数“protected-mode no”,如下:
./src/redis-server redis.conf protected-mode no
永久关闭保护模式:
在redis.conf中找到 “protected mode yes” 改成 “protected mode no”
2.配置密码
修改redis.conf文件中以下配置
# requirepass foobared
去掉#注释,并将foobared替换为密码
3.指定ip
修改redis.conf文件中以下配置
bind 127.0.0.1 将127.0.0.1配置为访问ip段,可配置多个,如下:
bing xxx.xxx.xxx.xx1 xxx.xxx.xxx.xx2
补充:
查看端口监听命令
linux
netstat -an | grep 6379
window
netstat -aon | findstr :6379
开机启动配置,在 rc.local文件中配置 (需要写全路径)
echo "/data/redis-4.0.1/src/redis-server /data/redis-4.0.1/redis.conf &" >> /etc/rc.local