1、Redis
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。
2、Redis应用场景
主要能够体现 解决数据库的访问压力。
例如:短信验证码时间有效期、session共享解决方案
3、Redis优势
性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
4、linux 安装Redis
Redis的官方下载网址是:http://redis.io/download (这里下载的是Linux版的Redis源码包)
Redis服务器端的默认端口是6379。
虚拟机中的Linux系统如何安装Redis:
(1)在windows系统中下载好Redis的源码包
(2)将Redis的源码包使用 rz 命令上传到Linux系统
(3)解压 源码包 tar -zxvf redis-5.0.7.tar.gz
(4)切换到解压后的目录 cd redis-5.0.7
(5)编译 make
(注意,编译需要C语言编译器gcc的支持,如果没有,需要先安装gcc。可以使用rpm -q gcc查看gcc是否安装)
(利用yum在线安装gcc的命令 yum -y install gcc )
(如果编译出错,请使用make clean清除临时文件。之后,找到出错的原因,解决问题后再来重新安装。 )
(6)执行安装 make install
(7)安装完成
5、Redis的启动命令
(1)切换到bin目录
比较重要的3个可执行文件:
redis-server:Redis服务器程序
redis-cli:Redis客户端程序,它是一个命令行操作工具。也可以使用telnet根据其纯文本协议操作。
redis-benchmark:Redis性能测试工具,测试Redis在你的系统及配置下的读写性能。
(2)开启
6、常用命令
daemonize yes --- 修改为yes 后台启动
requirepass 123456 ----注释取消掉设置账号密码
ps aux | grep '6379' --- 查询端口
kill -15 9886 --- 杀死重置
kill -9 9886 --- 强制杀死
service iptables stop 停止防火墙
7、连接Redis库
(1)5.0.7版本修改bind端口号为0.0.0.0
(2)关闭防火墙 systemctl stop firewalld
8、Redis的基本数据类型
(1)字符串类型(String)
下表列出了一些用于在Redis中管理字符串的基本命令:
编号 |
命令 |
描述说明 |
1 |
此命令设置指定键的值。 |
|
2 |
获取指定键的值。 |
|
3 |
获取存储在键上的字符串的子字符串。 |
|
4 |
设置键的字符串值并返回其旧值。 |
|
5 |
返回在键处存储的字符串值中偏移处的位值。 |
|
6 |
获取所有给定键的值 |
|
7 |
存储在键上的字符串值中设置或清除偏移处的位 |
|
8 |
使用键和到期时间来设置值 |
|
9 |
设置键的值,仅当键不存在时 |
|
10 |
在指定偏移处开始的键处覆盖字符串的一部分 |
|
11 |
获取存储在键中的值的长度 |
|
12 |
为多个键分别设置它们的值 |
|
13 |
为多个键分别设置它们的值,仅当键不存在时 |
|
14 |
设置键的值和到期时间(以毫秒为单位) |
|
15 |
将键的整数值增加1 |
|
16 |
将键的整数值按给定的数值增加 |
|
17 |
将键的浮点值按给定的数值增加 |
|
18 |
将键的整数值减1 |
|
19 |
按给定数值减少键的整数值 |
|
20 |
将指定值附加到键 |
(2)列表类型(List)
Redis列表是简单的字符串列表,按照插入顺序排序
下表列出了列表相关的基本命令:
序号 |
命令及描述 |
1 |
BLPOP key1 [key2 ] timeout |
2 |
BRPOP key1 [key2 ] timeout |
3 |
BRPOPLPUSH source destination timeout |
4 |
LINDEX key index |
5 |
LINSERT key BEFORE|AFTER pivot value |
6 |
LLEN key |
7 |
LPOP key |
8 |
LPUSH key value1 [value2] |
9 |
LPUSHX key value |
10 |
LRANGE key start stop |
11 |
LREM key count value |
12 |
LSET key index value |
13 |
LTRIM key start stop |
14 |
RPOP key |
15 |
RPOPLPUSH source destination |
16 |
RPUSH key value1 [value2] |
17 |
RPUSHX key value |
(3)Redis 集合(Set)
Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据
下表列出了 Redis 集合基本命令:
序号 |
命令及描述 |
1 |
SADD key member1 [member2] |
2 |
SCARD key |
3 |
SDIFF key1 [key2] |
4 |
SDIFFSTORE destination key1 [key2] |
5 |
SINTER key1 [key2] |
6 |
SINTERSTORE destination key1 [key2] |
7 |
SISMEMBER key member |
8 |
SMEMBERS key |
9 |
SMOVE source destination member |
10 |
SPOP key |
11 |
SRANDMEMBER key [count] |
12 |
SREM key member1 [member2] |
13 |
SUNION key1 [key2] |
14 |
SUNIONSTORE destination key1 [key2] |
15 |
(4)Redis 有序集合(sorted set)
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
下表列出了 redis 有序集合的基本命令:
(5)Redis 哈希(Hash)
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
下表列出了 redis hash 基本的相关命令:
序号 |
命令及描述 |
1 |
HDEL key field2 [field2] |
2 |
HEXISTS key field |
3 |
HGET key field |
4 |
HGETALL key |
5 |
HINCRBY key field increment |
6 |
HINCRBYFLOAT key field increment |
7 |
HKEYS key |
8 |
HLEN key |
9 |
HMGET key field1 [field2] |
10 |
HMSET key field1 value1 [field2 value2 ] |
11 |
HSET key field value |
12 |
HSETNX key field value |
13 |
HVALS key |
14 |
HSCAN key cursor [MATCH pattern] [COUNT count] |