redis学习
网站首页 文章专栏 redis学习
redis学习
编辑时间:2020-05-09 20:22 作者:毛毛小妖 浏览量:337 评论数:0

一.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 主机 端口

哨兵机制自动管理主从关系

来说两句吧
最新评论
    还没有人评论哦,快来坐沙发吧!