一,Redis简介
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。
它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能
想更多学习,可以参考官网:
学习网址:https://www.w3cschool.cn/redis/
相关下载信息:
redis-5.0.0.tar.gz(linux)
Redis-x64-3.2.100.msi(window安装版)
Redis-x64-3.2.100.zip(window解压版)
二,Redis安装
1 将下载的Redis放置到服务器
如下
2.解压redis
命令:tar -zxvf redis-5.0.0.tar.gz
3.安装gcc
命令:yum install gcc
4.编译redis
先进入redis文件夹中
命令:cd /redis-5.0.0
下载编译文件命令:make
5 检测安装情况
命令:make install
查看是否安装redis成功:进入 ./scr/redis -server redis.conf
出现像千层蛋糕一样的图像,就已经安装成功了。
但是出现之后,下面不能再使用命令操作,我们还需要更改文件才能继续用命令操作,看下面步骤。
先按住Ctrl+c即可退出来这个界面
6.修改redis.conf文件
输入vim redis.conf 进入该conf文件
修改redis.conf文件将daemonize no 改为 daemonize yes
这时我们如何使用快速定位语句,帮助我们快速定位呢?方法就是:
/你要定位的东西,例如这里我们将daemonize no 改为 daemonize yes,那小编输入/daemonize即可快速定位,修改之后保存退出。:wq
7 启动redis
首先我们启动的时候一定注意自己的命令所在位置,我们要执行的是src下的./redis-server,但是我们后面要加上得redis.conf确实和src同级目录下的所以这里必须注意
/src/redis-server redis.conf
8 测试redis启动是否成功
./redis-cli
ping
9 关闭掉已经启动的redis服务
查看进程号
lsof -i:6379
lsof -i:6379
关闭进程
命令:lsof -9 59791
10 配置密码且外部连接
执行完第六步我们会发现我们连接Redis不要密码!且只能本地连接外部连接连接不上,所以我们需要继续配置。
修改redis.conf注文件中的内容:注释掉bind 127.0.0.1这行语句并修改requirepass 123456 修改完毕之后按ESC并输入 :wq 保存退出
11 重启redis服务
刷新防火墙
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload
重新启动redis服务.
/src/redis-server redis.conf
12 redismanagerl连接测试
Linux连接
在主机中,打开数据库(RedisDesktopManager)进行连接Redis
RedisDesktopManager数据库的下载:
( 下载后,可能需要解压,之后就是傻瓜式安装即可 )
打开RedisDesktopManager,按下图步骤来
windows连接
在本地从官网下载Redis-x64-3.2.100资源包进行解压,然后进入解压后的文件,
将redis.windows.conf文件进行修改
在bind 127.0.0.1的前面加一个# 进行注释
并且将后面的密码修改为自己的密码,我这里设置 123456
根上面写的Redis安装第十步是一样的步骤
再创建一个文件,名为 : redis.bat (文件名不管取什么后缀名要带.bat)
选中该文件并编辑内容为 :
cd Redis-x64-3.2.100
redis-server redis.windows.conf
将该文件放入解压后的文件中,之后双击开启文件,会有个黑窗口,不用关掉,要不然前端就连接不到了
最后打开 RedisDesktopManager数据库,并连接。
到这里我们的Linux及windows安装Redis就全部完成了!!!
三,Redis常用命令
3.1.Redis字符串(String)
# set key //保存
set name zs
set age 12
set sex nan
# get key //获取
get name
# type key //查看类型
#type age //string 说明type返回的是键值对存储类型,而不是值存储类型
# keys *或keys key //查看所有或者指定的key
keys *
# SETEX KEY_NAME TIMEOUT VALUE // 给键值对设置过期时间
setex zs 60 live
# ttl key // 获取键值对剩余的存活时间
ttl zs
3.2 Redis哈希(Hash)
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
# hset key field1 value1 [field2 value2] #同时将多个field-value设置到哈希表key中
hset user name zs age 12 sex nv
# hget key field #获取指定的字段值
hget user age
# hdel key field #删除指定的字段值
hdel user age
# hgetall key #查询指定key的所有字段
hgetall user
# hexists key field #查询指定key中的字段是否存在
hexists user name
# hlen key #获取指定key中的长度
hlen user
3.3 Redis列表(List)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
# lpush key value1 value2 value3 #将一个或多个值插入到列表头部
lpush en a b c d e f g
# llen key #获取列表的长度
llen en
# lindex key index #根据索引获取列表中的元素
lindex en 1 #返回f,说明下标从0开始,同时先进后出
# lrange key start sop #查看指定范围内的元素
lrange en 1 3 #返回fed,说明下标从0开始,同时先进后出
3.4 Redis集合(Set)
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据
# sadd key value1 [value2] #向集合添加一个或多个元素
sadd hobby lanqiu zuqiu bingpangqiu zhuoqiu
# scard key #获取集合中的元素数量
scard hobby
# exists key #是否存在
exists hobby