make install 成功
- redis默认安装路径 /usr/local/bin
[root@Jsxs redis-7.0.9]# cd /usr [root@Jsxs usr]# ls bin games include java lib lib64 libexec local sbin share src tmp [root@Jsxs usr]# cd local [root@Jsxs local]# cd bin [root@Jsxs bin]# ls jemalloc-config jeprof luajit mcrypt redis-benchmark redis-check-rdb redis-sentinel jemalloc.sh libmcrypt-config luajit-2.0.4 mdecrypt redis-check-aof redis-cli redis-server
- 在该目录下创建一个文件夹 jconfig,将redis的配置文件复制到/usr/local/bin/zlkconfig
cp /opt/redis-7.0.9/redis.conf jconfig
使用jconfig进行启动
- redis默认不是后台启动的,需要修改配置文件
设置密码
- 通过刚刚新定义在 zlkconfig 里面的配置文件启动redis服务
# 回退到bin cd .. # 利用 jconfi/下面的配置文件启动redis 服务端 redis-server jconfig/redis.conf # 查看自己是否运行 netstat -anp|grep 6379 # 客户端链接redis 客户端 redis-cli -p 6379
9.全部过程
[root@Jsxs redis-7.0.9]# cd /usr [root@Jsxs usr]# ls bin games include java lib lib64 libexec local sbin share src tmp [root@Jsxs usr]# cd local [root@Jsxs local]# cd bin [root@Jsxs bin]# ls jemalloc-config jeprof luajit mcrypt redis-benchmark redis-check-rdb redis-sentinel jemalloc.sh libmcrypt-config luajit-2.0.4 mdecrypt redis-check-aof redis-cli redis-server [root@Jsxs bin]# mkdir jconfig [root@Jsxs bin]# cp /opt/redis-7.0.9/redis.conf j jconfig/ jemalloc-config jemalloc.sh jeprof [root@Jsxs bin]# cp /opt/redis-7.0.9/redis.conf jconfig [root@Jsxs bin]# [root@Jsxs bin]# cd jconfig/ [root@Jsxs jconfig]# ls redis.conf [root@Jsxs jconfig]# vim redis.conf [root@Jsxs jconfig]# vim redis.conf [root@Jsxs jconfig]# vim redis.conf [1]+ Stopped vim redis.conf [root@Jsxs jconfig]# vim redis.conf [root@Jsxs jconfig]# vim redis.conf [root@Jsxs jconfig]# vim redis.conf [root@Jsxs jconfig]# vim redis.conf [root@Jsxs jconfig]# vim redis.conf [root@Jsxs jconfig]# vim redis.conf [root@Jsxs jconfig]# vi -r redis.conf [root@Jsxs jconfig]# ls -a . .. redis.conf .redis.conf.swp [root@Jsxs jconfig]# rm .redis.conf.swp rm: remove regular file '.redis.conf.swp'? [root@Jsxs jconfig]# ls -a . .. redis.conf .redis.conf.swp [root@Jsxs jconfig]# rm .redis.conf.swp rm: remove regular file '.redis.conf.swp'? y [root@Jsxs jconfig]# ls -a . .. redis.conf [root@Jsxs jconfig]# vim redis.conf [root@Jsxs jconfig]# vim redis.conf [root@Jsxs jconfig]# clear [root@Jsxs jconfig]# cd .. [root@Jsxs bin]# pwd /usr/local/bin [root@Jsxs bin]# ls jconfig jemalloc.sh libmcrypt-config luajit-2.0.4 mdecrypt redis-check-aof redis-cli redis-server jemalloc-config jeprof luajit mcrypt redis-benchmark redis-check-rdb redis-sentinel [root@Jsxs bin]# redis-seerver jconfig/redis.conf -bash: redis-seerver: command not found [root@Jsxs bin]# redis-server jconfig/redis.conf [root@Jsxs bin]# netstat -anp|grep 6379 tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 1726/redis-server 1 [root@Jsxs bin]# ls jconfig jemalloc.sh libmcrypt-config luajit-2.0.4 mdecrypt redis-check-aof redis-cli redis-server jemalloc-config jeprof luajit mcrypt redis-benchmark redis-check-rdb redis-sentinel [root@Jsxs bin]# redis-cli -p 6379 127.0.0.1:6379> ping PONG 127.0.0.1:6379> set name jsxs OK 127.0.0.1:6379> get name "jsxs" 127.0.0.1:6379>
- 查看redis进程是否开启
ps -ef|grep redis
(9)关闭Redis服务 shutdown,并通过exit退出
如果设置了密码,那么我们需要先输入密码
auth 密码
6、redis-benchmark性能测试
在 /usr/local/bin 文件夹下存在Redis官方提供的性能测试工具 redis-benchmark;
cd /usr/local/bin
基本命令:redis-benchmark [option] [option value]
可选参数如下所示:
测试:
100个并发连接 100000请求,实例中主机为 127.0.0.1,端口号为 6379; redis-benchmark -h localhost -p 6379 -c 100 -n 100000
7、Redis基础知识(必须熟练掌握)
(1).常用的基本操作命令
默认使用第0个,共16个数据库。可以使用select n切换到DB n,dbsize可以查看当前数据库的大小,与key数量相关。
通过配置文件查看数据库的数量:
select n[第几个数据库] • 1
# 切换到第四个数据库 127.0.0.1:6379[3]> select 4 OK # 查看数据库的条数 127.0.0.1:6379[4]> DBSIZE (integer) 0 127.0.0.1:6379[4]> set name jsxs OK 127.0.0.1:6379[4]> DBSIZE (integer) 1 # 查看数据库的个数 127.0.0.1:6379[4]> config get databases 1) "databases" 2) "16" # 查看所有的key 127.0.0.1:6379[4]> keys * 1) "name" # 清除目前所在数据库的 127.0.0.1:6379[4]> flushdb OK 127.0.0.1:6379[4]> keys * (empty array) # 清空全部数据库的信息 flushall
(2)Redis是单线程的,并且是基于内存操作。
所以说。redis所遇到的瓶颈并不是CPU,而是机器的内存和网络的带宽。
(3)在没有接触redis之前,我们大都会有这样的误区:
- 误区一: 高性能的服务器一定就是多线程的?
- 误区二: 多线程(CPU上下文会切换!)一定比单线程效率高?
事实上并不完全是这样,我们的Redis是将所有的数据放在内存中。这样的话使用单线程去操作效率就是最高的,而多线程(CPU上下文会切换:耗时的操作!),对于内存系统来说,如果没有上下文切换效率就是最高的,多次读写都是在一个CPU上的,在内存存储数据情况下,单线程就是最佳的方案。
正常情况下: CPU > 内存 > 硬盘
(三)、六大基本数据类型 💥
官方:
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串
、哈希表
、列表
、集合
、有序集合,位图
,hyperloglogs等数据类型。内置复制
、Lua脚本
、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。
1、Redis-key(键值对)
127.0.0.1:6379> keys * # 查看本数据库的全部key (empty array) 127.0.0.1:6379> set name jsxs # 设置key值为name,值为jsxs OK 127.0.0.1:6379> set aege 21 OK 127.0.0.1:6379> keys * 1) "name" 2) "aege" 127.0.0.1:6379> EXISTS namE (integer) 0 127.0.0.1:6379> EXISTS name # 判断key值是否存在,存在的话为1,不存在为0 (integer) 1 127.0.0.1:6379> move name 1 # 移动key值到指定的index数据库 (integer) 1 127.0.0.1:6379> select 1 # 切换到指定数据库 OK 127.0.0.1:6379[1]> keys * 1) "name" 127.0.0.1:6379[1]> select 0 OK 127.0.0.1:6379> set name jsxs OK 127.0.0.1:6379> keys * 1) "name" 2) "aege" 127.0.0.1:6379> expire name 10 # 设置过期时间 单位是秒 (integer) 1 127.0.0.1:6379> ttl name # 查看还剩多少秒过期 -2已经过期 -1 不会过期 (integer) -2 127.0.0.1:6379> ttl name (integer) -2 127.0.0.1:6379> get name (nil) 127.0.0.1:6379> type aege # 查看当前key的类型 string 127.0.0.1:6379> rename aege age #修改key值得名字 OK 127.0.0.1:6379> keys * 1) "age"
更多常用的的redis命令,可以参考 redis命令手册
2、Redis-String (字符串)