一.Redis安装
1.下载安装包
去redis官网下载redis-4.0.2.tar.gz
2.安装c++
sudo yum install -y gcc-c++
3.安装redis
上传Redisjar包到/opt/software目录下,解压到/opt/module
tar -zxvf redis-4.0.2.tar.gz -c /opt/module/
进入/opt/module/redis-4.0.2下,修改安装位置:
vim src/Makefile,修改PREFIX:
PREFIX?=/usr/local/redis
执行编译命令
make
make install
二.启动Redis
1.默认启动
/usr/local/redis/bin/redis-server
2.使用配置文件启动
准备配置文件:
cp /opt/redis-4.0.2/redis.conf /usr/local/redis/
修改配置文件:
配置项名称 | 作用 | 取值 |
---|---|---|
daemonize | 控制是否以守护进程形式运行Redis服务器 | yes |
logfile | 指定日志文件位置 | "/var/logs/redis.log" |
dir | Redis工作目录 | /usr/local/redis |
启动
/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
三.启动客户端
1.启动
/usr/local/redis/bin/redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit
2.基本操作
1.切换数据库(redis默认有16个数据库):select 2
2.查看数据库大小:dbsize
3.key操作:
KEYS PATTERN 搜索
TYPE KEY 查看key的类型
MOVE KEY DB 将key移动到另外一个数据库
DEL KEY [KEY ...] 删除key
EXISTS KEY 检查key是否存在
RANDOMKEY 在现有的KEY中随机返回一个
RENAME KEY NEWKEY 重命名
RENAMENX KEY NEWKEY 只有在NEWKEY不存在时能够执行成功,否则失败
TTL KEY 查看key的剩余存活时间
EXPIRE KEY SECONDS 设置key的过期时间
PERSIST KEY 移除过期时间,变成永久key
四.Redis五种数据类型
1.总体结构
key | string |
list | |
set | |
hash | |
zset |
2.String
序号 | 操作 | 说明 |
---|---|---|
2 | SET KEY VALUE [EX SECONDS] [PX MILLISECONDS] [NX|XX] | 给KEY设置一个string类型的值。 EX参数用于设置存活的秒数。 PX参数用于设置存活的毫秒数。 NX参数表示当前命令中指定的KEY不存在才行。 XX参数表示当前命令中指定的KEY存在才行。 |
2 | GET KEY | 根据key得到值 |
3 | APPEND KEY VALUE | 把指定的value追加到KEY对应的原来的值后面 |
4 | STRLEN KEY | 直接返回字符串长度 |
5 | INCR KEY | 自增1 |
6 | DECR KEY | 自减1 |
7 | INCRBY KEY INCREMENT | 原值+INCREMENT |
8 | DECRBY KEY DECREMENT | 原值-DECREMENT |
9 | GETRANGE KEY START END | 从字符串中取指定的一段 |
10 | SETRANGE KEY OFFSET VALUE | 从offset开始使用VALUE进行替换 |
11 | SETEX KEY SECONDS VALUE | 设置KEY,VALUE时指定存在秒数 |
12 | SETNX KEY VALUE | 新建字符串类型的键值对 |
13 | MSET KEY VALUE [KEY VALUE ...] | 一次性设置一组多个键值对 |
14 | MGET KEY [KEY ...] | 一次性指定多个KEY,返回它们对应的值,没有值的KEY返回值是(nil) |
15 | MSETNX KEY VALUE [KEY VALUE ...] | 一次性新建多个值 |
16 | GETSET KEY VALUE | 设置新值,同时能够将旧值返回 |
3.List
序号 | 操作 | 说明 |
---|---|---|
1 | LPUSH key value [value ...] | |
2 | RPUSH key value [value ...] | |
3 | LRANGE key start stop | 根据list集合的索引打印元素数据 正着数:0,1,2,3,... 倒着数:-1,-2,-3,... |
4 | LLEN key | |
5 | LPOP key | 从左边弹出一个元素。 弹出=返回+删除。 |
6 | RPOP key | 从右边弹出一个元素。 |
7 | RPOPLPUSH source destination | 从source中RPOP一个元素,LPUSH到destination中 |
8 | LINDEX key index | 根据索引从集合中取值 |
9 | LINSERT key BEFORE|AFTER pivot value | 在pivot指定的值前面或后面插入value |
10 | LPUSHX key value | 只能针对存在的list执行LPUSH |
11 | LREM key count value | 根据count指定的数量从key对应的list中删除value |
12 | LSET key index value | 把指定索引位置的元素替换为另一个值 |
13 | LTRIM key start stop | 仅保留指定区间的数据,两边的数据被删除 |
4.Set
序号 | 操作 | 说明 |
---|---|---|
1 | SADD key member [member ...] | |
2 | SCARD key | 返回集合中元素的数量 |
3 | SISMEMBER key member | 检查当前指定member是否是集合中的元素 |
4 | SREM key member [member ...] | 从集合中删除元素 |
5 | SINTER key [key ...] | 将指定的集合进行“交集”操作 |
6 | SINTERSTORE destination key [key ...] | 取交集后存入destination |
7 | SDIFF key [key ...] | 将指定的集合执行“差集”操作 |
8 | SDIFFSTORE destination key [key ...] | |
9 | SUNION key [key ...] | 将指定的集合执行“并集”操作 |
10 | SUNIONSTORE destination key [key ...] | |
11 | SMOVE source destination member | 把member从source移动到destination |
12 | SPOP key [count] | 从集合中随机弹出count个数量的元素,count不指定就弹出1个 |
13 | SRANDMEMBER key [count] | 从集合中随机返回count个数量的元素,count不指定就返回1个 |
14 | SSCAN key cursor [MATCH pattern] [COUNT count] | 基于游标的遍历 |
5.Hash
序号 | 操作 |
---|---|
1 | HSET key field value |
2 | HGETALL key |
3 | HGET key field |
4 | HLEN key |
5 | HKEYS key |
6 | HVALS key |
7 | HEXISTS key field |
8 | HDEL key field [field ...] |
9 | HINCRBY key field increment |
10 | HMGET key field [field ...] |
11 | HMSET key field value [field value ...] |
12 | HSETNX key field value |
6.Zset
序号 | 操作 |
---|---|
1 | ZADD key [NX|XX] [CH] [INCR] score member [score member ...] |
2 | ZRANGE key start stop [WITHSCORES] |
3 | ZCARD key |
4 | ZSCORE key member |
5 | ZINCRBY key increment member |
6 | ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] |
7 | ZRANK key member |
8 | ZREM key member [member ...] |
五.Redis持久化
1.RDB
每隔一定的时间把内存中的数据作为一个快照保存到硬盘上的文件中。Redis默认开启RDB机制。
RDB不能保证数据的绝对安全,因为在本次保存到下次执行保存时有时间间隔,期间断电会造成数据丢失
1)默认配置
save 900 1
save 300 10
save 60 10000
2)手动保存
save或者bgsave
2.AOF
1)根据配置文件中指定的策略,把生成数据的命令保存到硬盘上的文件中。
2)AOF配置
配置项 | 取值 | 作用 |
---|---|---|
appendonly | yes | 启用AOF持久化机制 |
no | 禁用AOF持久化机制[默认值] | |
appendfilename | "文件名" | AOF持久化文件名 |
dir | Redis工作目录路径 | 指定存放持久化文件的目录的路径。注意:这里指定的必须是目录不能是文件名 |
appendfsync | always | 每一次数据修改后都将执行文件写入操作,缓慢但是最安全。 |
everysec | 每秒执行一次写入操作。折中。 | |
no | 由操作系统在适当的时候执行写入操作,最快。 |
3)AOF重写
配置项 | 含义 |
---|---|
auto-aof-rewrite-percentage 100 | 文件体积增大100%时执行AOF重写 |
auto-aof-rewrite-min-size 64mb | 文件体积增长到64mb时执行AOF重写 |
3.持久化文件修复
-
第一步:备份要修复的appendonly.aof文件
-
第二步:执行修复程序
/usr/local/redis/bin/redis-check-aof --fix /usr/local/redis/appendonly.aof
-
第三步:重启Redis
六.Redis事务
1)相关命令
命令名 | 作用 |
---|---|
MULTI | 表示开始收集命令,后面所有命令都不是马上执行,而是加入到一个队列中。 |
EXEC | 执行MULTI后面命令队列中的所有命令。 |
DISCARD | 放弃执行队列中的命令。 |
WATCH | “观察“、”监控“一个KEY,在当前队列外的其他命令操作这个KEY时,放弃执行自己队列的命令 |
UNWATCH | 放弃监控一个KEY |
2)Redis不支持回滚
1.Redis 命令只会因为错误的语法而失败
2.因为不需要对回滚进行支持,所以 Redis 的内部可以保持简单且快速。
3.在使用WATCH命令监控一个KEY后,当前队列中的命令会由于外部命令的执行而放弃,这是乐观锁的体现。
七.Redis主从复制
slaveof 主机 端口
哨兵机制自动管理主从关系
最后修改:2019-10-22 14:12:09
© 著作权归作者所有
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
