1. 下载与安装
1.1 下载
redis : http://www.redis.net.cn/ 图形工具: https://redisdesktop.com/download1.2 安装
虽然可以在安装在 windows 操作系统,但是官方不推荐,所以我们一如既往的安装在 linux 上 1. 上传 tar.gz 包,并解压tar -zxvf redis-5.0.4.tar.gz
2.
安装
gcc
(必须有网络)
yum -y install gcc
忘记是否安装过,可以使用
gcc
-
v
命令查看
gcc
版本,如果没有安装过,会提示命令不存在
3.
进入
redis
目录,进行编译
make
4.
编译之后,开始安装
make install
1.3 安装后的操作
1.3.1 后台运行方式
- redis默认不会使用后台运行,如果你需要,修改配置文件daemonize=yes,当你后台服务启动的时候,会写成一个进程文件运行。
vim /opt/redis-5.0.4/redis.conf
// 更改下面配置
daemonize yes
- 以配置文件的方式启动
cd /usr/local/bin
redis-server /opt/redis-5.0.4/redis.conf
1.3.2 关闭数据库
- 单实例关闭
redis-cli shutdown
- 多实例关闭
redis-cli -p 6379 shutdown
1.3.3 常用操作
- 检测6379端口是否在监听
netstat -lntp | grep 6379
端口为什么是6379?
6379在是手机按键上MERZ对应的号码,
而MERZ取自意大利歌女Alessia Merz的名字。
MERZ长期以来被antirez(redis作者)及其朋友当作愚蠢的代名词。
- 检测后台进程是否存在
ps -ef|grep redis
1.3.4 连接redis并测试
redis-cli
ping
1.3.5 HelloWorld
# 保存数据
set k1 china
# 获取数据
get kl
1.3.6
测试性能
- 先 ctrl+c,退出redis客户端
redis-benchmark
- 执行命令后,命令不会自动停止,需要我们手动ctrl+c停止测试
[root@localhost bin]# redis-benchmark
====== PING_INLINE ======
100000 requests completed in 1.80 seconds # 1.8秒处理了10万个请求,性能要看笔记 本的配置高低
50 parallel clients
3 bytes payload
keep alive: 1
87.69% <= 1 milliseconds
99.15% <= 2 milliseconds
99.65% <= 3 milliseconds
99.86% <= 4 milliseconds
99.92% <= 5 milliseconds
99.94% <= 6 milliseconds
99.97% <= 7 milliseconds
100.00% <= 7 milliseconds
55524.71 requests per second # 每秒处理的请求数量
1.3.7
默认
16
个数据库
vim /opt/redis-5.0.4/redis.conf
127.0.0.1:6379> get k1 # 查询k1
"china"
127.0.0.1:6379> select 16 # 切换16号数据库
(error) ERR DB index is out of range # 数据库的下标超出了范围
127.0.0.1:6379> select 15 # 切换15号数据库
OK
127.0.0.1:6379[15]> get k1 # 查询k1
(nil)
127.0.0.1:6379[15]> select 0 # 切换0号数据库
OK
127.0.0.1:6379> get k1 # 查询k1
"china"
1.3.8
数据库键的数量
dbsize
redis
在
linux
支持命令补全(
tab
)
1.3.9
清空数据库
- 清空当前库
flushdb
- 清空所有(16个)库,慎用!!
flushall
1.3.10
模糊查询(
key
)
模糊查询
keys
命令,有三个通配符:
- *:通配任意多个字符
keys * 查询所有的键
keys k* 模糊查询k开头,后面随便多少个字符
keys *e 模糊查询e为最后一位,前面随便多少个字符
keys *k* 双 * 模式,匹配任意多个字符:查询包含k的键
- ?:通配单个字符
keys k? 模糊查询k字头,并且匹配一个字符
keys k?? 你只记得第一个字母是k,他的长度是3
keys r[ae]dis []:通配括号内的某一个字符 -- 记得其他字母,就第二个字母可能是a或e
1.3.11
键(
key
)
- exists key:判断某个key是否存在
127.0.0.1:6379> exists k1
(integer) 1 # 存在
127.0.0.1:6379> exists y1
(integer) 0 # 不存在
- move key db:移动(剪切,粘贴)键到几号库
127.0.0.1:6379> move x1 8 # 将x1移动到8号库
(integer) 1 # 移动成功
127.0.0.1:6379> exists x1 # 查看当前库中是否存在x1
(integer) 0 # 不存在(因为已经移走了)
127.0.0.1:6379> select 8 # 切换8号库
OK
127.0.0.1:6379[8]> keys * # 查看当前库中的所有键
1) "x1"
- ttl key:查看键还有多久过期(-1永不过期,-2已过期)
- time to live 还能活多久
127.0.0.1:6379[8]> ttl x1
(integer) -1 # 永不过期
- expire key 秒:为键设置过期时间(生命倒计时)
127.0.0.1:6379[8]> set k1 v1 # 保存k1
OK
127.0.0.1:6379[8]> ttl k1 # 查看k1的过期时间
(integer) -1 # 永不过期
127.0.0.1:6379[8]> expire k1 10 # 设置k1的过期时间为10秒(10秒后自动销毁)
(integer) 1 # 设置成功
127.0.0.1:6379[8]> get k1 # 获取k1
"v1"
127.0.0.1:6379[8]> ttl k1 # 查看k1的过期时间
(integer) 2 # 还有2秒过期
127.0.0.1:6379[8]> get k1
(nil)
127.0.0.1:6379[8]> keys * # 从内存中销毁了
(empty list or set)
- type key:查看键的数据类型
127.0.0.1:6379[8]> type k1
string # k1的数据类型是会string字符串