102.【Redis】(二)

简介: 102.【Redis】

make install 成功

  1. 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

  1. 在该目录下创建一个文件夹 jconfig,将redis的配置文件复制到/usr/local/bin/zlkconfig
cp /opt/redis-7.0.9/redis.conf jconfig

使用jconfig进行启动

  1. redis默认不是后台启动的,需要修改配置文件

设置密码

  1. 通过刚刚新定义在 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>
  1. 查看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 (字符串)

相关文章
|
JavaScript 前端开发 测试技术
|
SQL 存储 负载均衡
MySQL实战 主从同步(原理+实战)
MySQL实战 主从同步(原理+实战)
MySQL实战 主从同步(原理+实战)
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
TsingtaoAI亮相2025青岛西海岸科技成果对接会,以具身智能实训赋能AI人才培养
3月26日青岛——由青岛市科学技术局指导、青岛西海岸新区管委联合上海技术交易所等多家机构主办的“2025青岛西海岸新区科技成果对接会”在青岛金沙滩蓝海御华酒店盛大启幕。青岛市委常委,西海岸新区工委书记、区委书记孙永红,青岛市科学技术局副局长张栋华和上海技术交易所总裁颜明峰等参加会议并致辞。TsingtaoAI受邀参会并发表主题分享,公司负责人汶生以《基于DeepSeek的具身智能实训》为题,向与会嘉宾展示了AI具身智能技术如何突破传统边界,助力AI人才从实验室走向产业一线。
292 1
|
存储 NoSQL MongoDB
MongoDB 复制(副本集)
10月更文挑战第17天
217 2
MongoDB 复制(副本集)
|
机器学习/深度学习 人工智能 算法
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台。果蔬识别系统,本系统使用Python作为主要开发语言,通过收集了12种常见的水果和蔬菜('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜'),然后基于TensorFlow库搭建CNN卷积神经网络算法模型,然后对数据集进行训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地文件方便后期调用。再使用Django框架搭建Web网页平台操作界面,实现用户上传一张果蔬图片识别其名称。
423 0
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
数据采集 机器学习/深度学习 算法
"揭秘数据质量自动化的秘密武器:机器学习模型如何精准捕捉数据中的‘隐形陷阱’,让你的数据分析无懈可击?"
【8月更文挑战第20天】随着大数据成为核心资源,数据质量直接影响机器学习模型的准确性和效果。传统的人工审查方法效率低且易错。本文介绍如何运用机器学习自动化评估数据质量,解决缺失值、异常值等问题,提升模型训练效率和预测准确性。通过Python和scikit-learn示例展示了异常值检测的过程,最后强调在自动化评估的同时结合人工审查的重要性。
366 2
|
Oracle Java 关系型数据库
yum安装指定版本的openJDK
yum安装指定版本的openJDK
|
Prometheus 监控 Kubernetes
深入理解Prometheus: Kubernetes环境中的监控实践
Kubernetes简介 在深入Prometheus与Kubernetes的集成之前,首先简要回顾一下Kubernetes的核心概念。Kubernetes是一个开源的容器编排平台,用于自动化容器的部署、扩展和管理。它提供了高度的可扩展性和灵活性,使得它成为微服务和云原生应用的理想选择。 核心组件 • 控制平面(Control Plane):集群管理相关的组件,如API服务器、调度器等。 • 工作节点(Nodes):运行应用容器的机器。 • Pods:Kubernetes的基本运行单位,可以容纳一个或多个容器。
251 1
|
存储 Linux Windows
技术心得:如何制作ISO镜像文件
技术心得:如何制作ISO镜像文件
664 0
|
前端开发 C++
css实用技巧——锁定页面,禁止滚动 vs 解锁页面,恢复滚动
css实用技巧——锁定页面,禁止滚动 vs 解锁页面,恢复滚动
510 0