一、概述
Redis是一个基于内存的key-value结构数据库。它是互联网技术领域使用最为广泛的存储中间件。其英文名为【Remote Dictionary Service】,也就是【远程字典服务】。Redis中文网:Redis中文网
二、优点
1.基于内存存储,读写性能高
2.适合存储热点数据(热点商品、资讯、新闻)
3. 企业应用广泛
三、作用
1.数据缓存
2.消息队列
3.注册中心
4.发布订阅
四、安装
Windows版下载地址:Releases · microsoftarchive/redis · GitHub
Linux版下载地址: Index of /releases/
1.Windows安装:
Windows系统中启动Redis,直接双击redis-server.exe即可启动Redis服务,redis服务默认端口号为6379 ,==Ctrl + C==停止Redis服务,双击==redis-cli.exe==即可启动Redis客户端,默认连接的是本地的Redis服务,而且不需要认证即可连接成功。退出客户端可以输入==exit==或者==quit==命令。
2.Linux安装
在Linux系统安装Redis步骤:
-
将Redis安装包上传到Linux
-
解压安装包,命令:==tar -zxvf redis-4.0.0.tar.gz -C /usr/local==
-
安装Redis的依赖环境gcc,命令:==yum install gcc-c++==
-
进入/usr/local/redis-4.0.0,进行编译,命令:==make==
-
进入redis的src目录进行安装,命令:==make install==
安装后重点文件说明:
/usr/local/redis-4.0.0/src/redis-server:Redis服务启动脚本
/usr/local/redis-4.0.0/src/redis-cli:Redis客户端脚本
/usr/local/redis-4.0.0/redis.conf:Redis配置文件
3.相关配置
1)设置Redis服务后台运行
将配置文件中的==daemonize==配置项改为yes,默认值为no。
注意:Windows版的Redis不支持后台运行。
2)设置Redis服务密码
将配置文件中的 ==# requirepass foobared== 配置项取消注释,默认为注释状态。foobared为密码,可以根据情况自己指定。
3)设置允许客户端远程连接Redis服务
Redis服务默认只能客户端本地连接,不允许客户端远程连接。将配置文件中的 ==bind 127.0.0.1== 配置项注释掉。
解释说明:
Redis配置文件中 ==#== 表示注释
Redis配置文件中的配置项前面不能有空格,需要顶格写
daemonize:用来指定redis是否要用守护线程的方式启动,设置成yes时,代表开启守护进程模式。在该模式下,redis会在后台运行
requirepass:设置Redis的连接密码
bind:如果指定了bind,则说明只允许来自指定网卡的Redis请求。如果没有指定,就说明可以接受来自任意一个网卡的Redis请求。
五、Redis数据类型
1.字符串(String):普通字符串,常用
-
SET key value 设置指定key的值
-
GET key 获取指定key的值
-
SETEX key seconds value 设置指定key的值,并将 key 的过期时间设为 seconds 秒
-
SETNX key value 只有在 key 不存在时设置 key 的值
-
DEL key 根据key删除键值对
2.哈希(hash):适合存储对象
-
HSET key field value 将哈希表 key 中的字段 field 的值设为 value
-
HGET key field 获取存储在哈希表中指定字段的值
-
HDEL key field 删除存储在哈希表中的指定字段
-
HKEYS key 获取哈希表中所有字段
-
HVALS key 获取哈希表中所有值
-
HGETALL key 获取在哈希表中指定 key 的所有字段和值
-
DEL key
3.列表(list):按照插入顺序排序,可以有重复元素
-
LPUSH key value1 [value2] 将一个或多个值插入到列表头部
-
RPUSH key value1 [value2]
-
LRANGE key start stop 获取列表指定范围内的元素
假设元素顺序 c b a d e f
从左到右元素的索引:0 1 2 3 4 5
从右到左元素的索引: -6 -5 -4 -3 -2 -1
-
RPOP key 移除并获取列表最后一个元素
-
LPOP KEY 移除并获取列表第一个元素
-
LLEN key 获取列表长度
-
BRPOP key1 [key2 ] timeout 移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
4.集合(set):无序集合,没有重复元素
-
SADD key member1 [member2] 向集合添加一个或多个成员
-
SMEMBERS key 返回集合中的所有成员
-
SCARD key 获取集合的成员数
-
SREM key member1 [member2] 移除集合中一个或多个成员
-
SINTER key1 [key2] 返回给定所有集合的交集
-
SUNION key1 [key2] 返回所有给定集合的并集
-
SDIFF key1 [key2] 返回给定所有集合的差集
5.有序集合(zset/sorted set):集合中每个元素关联一个分数(score),根据分数升序排序,没有重复元素
-
ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员,或者更新已存在成员的 分数
-
ZRANGE key start stop [WITHSCORES] 通过索引区间返回有序集合中指定区间内的成员
-
ZINCRBY key increment member 有序集合中对指定成员的分数加上增量 increment
-
ZREM key member [member ...] 移除有序集合中的一个或多个成员
通用命令:
-
KEYS pattern 查找所有符合给定模式( pattern)的 key
-
EXISTS key 检查给定 key 是否存在
-
TYPE key 返回 key 所储存的值的类型
-
TTL key 返回给定 key 的剩余生存时间(TTL, time to live),以秒为单位
-
DEL key 该命令用于在 key 存在是删除 key
-
select 0到15的索引 切换数据库,默认是0号数据库
-
flushdb 清空当前数据库
-
flushall 清空所有数据库