1. 下载安装
- 下载
- 方式:
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
(2019-6-19最新);
- 方式:
- 解压
-
tar -zxvf redis-5.0.5.tar.gz
;
-
- 移动至/usr/local目录下
-
mv ./redis-5.0.5 /usr/local/redis
;
-
- 进入目录
-
cd /usr/local/redis
;
-
- 编译
make
-
make后报错如下:
- 解决方式参考:https://blog.csdn.net/wlwlwlwl015/article/details/50444672
- 解决make报错:安装gcc
-
yum -y install gcc automake autoconf libtool make
-
- 重新编译
-
make
注意,如果编译失败则将redis文件夹删除重新解压后编译。
-
- 编译测试
- 如编译成功后提示,执行
make test
-
make test报错
- 解决make test报错
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
cd /usr/local/tcl8.6.1/unix/
./configure
make
make install
- 再次make test
-
大部分[ok],有警告:
(原因不清楚,继续往下= =!)
-
- 如编译成功后提示,执行
- 安装
make install
成功!
- redis-server redis服务器
- redis-cli redis命令行客户端
- redis-benchmark redis性能测试工具
- redis-check-aof AOF文件修复工具
- redis-check-rdb RDB文件检索工具
2. 配置
- 复制配置文件到/etc/redis目录
cp /usr/local/redis/redis.conf /etc/redis
; - 配置文件说明
参考:https://www.cnblogs.com/tmpt/p/redis_conf_detail_annotation.html; - 主要配置
- bind 127.0.0.1 # 绑定ip,如果需要远程访问,可注释,或绑定多个真实ip;
- port 6379 # 端口;
- daemonize yes # 以守护进程运行,不会在命令行阻塞,类似于服务;
- dbfilename dump.rdb # 数据文件;
- dir /var/lib/redis # 数据文件存储路径;
- logfile /var/log/redis/redis-server.log # 日志文件;
- database 16 # 数据库,默认16个;
- slaveof # 主从配置时使用;
3. 主要命令
- 服务器端:
- 启动:
-
cd /usr/local/bin
;./redis-server &
-
redis-server /etc/redis/redis.conf
# 加载指定的配置文件启动
-
- 停止:
kill -9 pid
- 启动:
- 客户端:
- 启动:
redis-cli
- 测试:
ping
- 切换数据库:
select n # 默认是0,即第一个数据库
- 启动:
4. 操作
redis数据结构为key-value形式,key为字符串,不可重复。值共有五种类型:
- 字符串string
- 列表list
- 哈希hash
- 集合set
- 有序集合zset
4.1 键命令
- 查找键
keys pattern # pattren支持正则表达式
- 查看键是否存在
exists key # 返回1表示在,0表示不在
- 查看键类型
type key # 查看值得类型
- 删除键
del key1 key2... # 删除键
- 设置键过期时间
expire key seconds # 设置小于等于0的数相当于删除键
- 查看键有效时间
ttl key # -1表示永久有效,但expire key -1只能删除键,不能当成是设置永久有效,可以通过set key value来让有有效时间的key永久有效。setex key seconds value中seconds只能为正整数
4.2 字符串操作
redis中字符串类型value最多可以容纳512M大小数据的长度。
注意下面命令中key和value不加引号也是可以的。
- 添加/修改
set key value # 键没有则添加,键存在则修改
setex key seconds value # 设置过期时间,单位:秒
mset key1 value1 key2 value2 ... # 一次设置多个键值
append key value # 在key对应原value后面拼加新的字符串作为新value。如果key不存在,则添加key-value
- 获取
get key
mget key1 key2 ... # 根据多个键获取多个值
4.3 hash操作(值类型为string)
- 添加/修改
hset key field value # 设置单个属性
hset/hmset key field1 value1 field2 value2... # 设置多个属性
- 获取
hkeys key # 获取指定键所有属性
hget key field # 获取单个属性的值
hmget key field1 field2... # 获取多个属性的值,注意获取多个时只能hmget,hget不行
havls key # 获取所有属性的值
- 删除
del key # 删除hash键
hdel key field1 field2... # 删除key的多个属性
4.4 list操作(元素类型为string)
按照插入顺序排序
- 添加
lpush key value1 value2 ... # 在左侧插入数据
rpush key value1 value2 ... # 在右侧插入数据
linsert key before|after value value1, value2... # 在元素value左/右插入元素
- 获取
lrange key start stop # 获取从start到stop索引的所有元素,索引可以为负数,-1表示最后一个元素
- 设置
lset key index value # 设置指定索引位置的元素
- 删除
lrem key count value # 将列表前count次出现的value删除,count>0 从头到尾删除,count<0 从尾到头删除,count=0 删除全部
4.5 set操作(元素类型为string)
set类型没有修改操作
元素具有唯一性,不重复(重复的加不进去)
- 添加
sadd key value1 value2
- 获取
smembers key
- 删除
srem key value1 # 删除指定元素
4.6 zset操作(元素类型为string)
元素唯一,不重复,有序
- 添加
zadd key score1 value1, score2 value2 ... # score表示权重,排序规则用
- 获取
zrange key start stop # 获取指定范围内的元素
zrangebyscore key min max # 返回score值在min到max之间的元素
zscore key member # 返回元素member中的score值
- 删除
zrem key member1 member2 ... # 删除指定元素
zremrangebyscore key min max... # 删除权重在min到max直接的元素