【Windows】Redis单机部署

news2025/1/13 13:43:26

下载redis

下载地址:Releases · microsoftarchive/redis · GitHub

1、下载后解压,在文件根目录下创建两个文件夹dbcache、logs

修改配置文件redis.windows.conf 

(1)配置redis地址:

bind 127.0.0.1

(2)配置redis端口(默认6379):

port 6379

 (3)配置redis密码(默认为空):

requirepass 123456

(4)配置redis是否为后台运行(NOT SUPPORTED ON WINDOWS):

daemonize no

(5)设置进程保存路径(NOT SUPPORTED ON WINDOWS):

/var/run/redis_6379.pid

(6)支持数据库个数:

databases 16

(7)设置数据文件保存目录:

dir ./dbcache

(8)设置日志文件保存:

logfile "./logs/logfile.log"

3、启动redis服务,双击redis-server.exe 或 cmd到redis安装目录执行命令(需要指定配置文件):

redis-server redis.windows.conf

4、将redis注册为系统服务,设置redis开机自启

打开命令行,进入redis目录,执行以下命令,然后查看“服务”(services.msc)。另外,配置一下环境变量,将redis路径添加到path中。这里就是用了redis.windows-service.conf作为配置文件, --loglevel notice是设置log记录的,基本是notice

redis-server.exe --service-install redis.windows-service.conf --loglevel notice

5、连接redis客户端,执行以下命令行:

redis-cli -h 127.0.0.1 -p 6379

如果设置密码,则需要输入密码(auth "你的密码")验证:

auth "123456"

进行简单redis操作测试:

此外redis有提供客户端可视化工具: 

  • Another Redis Desktop Manager(本人用过) GitHub - qishibo/AnotherRedisDesktopManager: 🚀🚀🚀A faster, better and more stable redis desktop manager [GUI client], compatible with Linux, Windows, Mac. What's more, it won't crash when loading massive keys.
  • Redis Insight (Web版) RedisInsight | The Best Redis GUI

redis常用的服务命令

(1)安装服务

redis-server --service-install

(2)卸载服务

redis-server --service-uninstall

(3)启动服务

redis-server --service-start

(4)停止服务

redis-server --service-stop

(5)其他命令

redis-server --service-name YourServiceName #设置服务的名字
redis-server --port YourPortNumber #设置服务的端口号

第一条命令为:以redis.windows-servie.conf作为配置文件,名字为 redisTest, 端口号为 6388 来安装一个Redis服务;

第二条命令为:(红色框内)是卸载名为 redisTest的服务。 

redis常用操作命令

对key的操作

#查看当前库所有的key
keys *
#判断某个key是否存在
exists key
#查看key的类型
type key
#删除指定的key
del key
#unlink key 根据key非阻塞删除,先将key从元数据中删除,后续异步删除key
#设置key的过期时间(10秒)
expire key 10
#查看key剩余多少过期时间, -1表示永不过期,-2表示已过期,其他表示剩余多少秒
ttl key 
#查看当前库中key的数量
dbsize

String类型操作

#添加键值对
set key value
#通过key获得值
get key
#对指定key的值在末尾追加
append key value 
#获得指定key的值的长度
strlen key
#添加键值对,只有key不存在时才添加,并且返回1,当key存在时,不添加,返回0
setnx key value
#将key中存储的数字值自增1
incr key
#将key中存储的数字值减一1
decr key
#注意:自增,自减操作在redis中都是原子性。
#将key中存储的数据值增加/减少指定的值10
incrby/decrby key 10
#同时添加多个键值对
mset key1 value1 key2 value2 
#同时获得多个key的值
mget key1 key2
#同时设置多个键值对,只有当所有的键值对都不存在时,才设置(如果有其中一个key存在,那么所有的键值对都不添加)
msetnx key1 value1 key2 value2
#获取指定key范围的值(索引位置为0-3的值)
getrange key 0 3
#设置指定key的值从指定位置开始覆盖(索引为3的位置)
setrange key 3 value     #(会将key原来的值,从索引为3的位置开始覆盖value,value有几位就覆盖几位,剩余的保留)
#以旧换新,将旧的值替换出来
getset key value

String 类型的数据结构为简单动态字符串,是可以修改的字符串,内部结构类似与ArrayList,先预分配一块冗余的空间,必变频繁的扩容。

String类型的扩容,当预存空间大小小于1M时,每次扩容为预存空间的2倍。当预存空间大于1M时,每次扩容只增加1M。

list(一键多值)类型操作

#从左边依次插入多个值
lpush key value1 value2 value3
#从右边依次插入多个值
rpush key value1 value2 value3
#从列表左边/或右边吐出一个值(吐出之后这个值就不在列表里面了)
lpop/rpop key
#从列表1中右边/吐出一个值插入到列表2的左边(吐出之后,这个就不在列表里面了)
rpoplpush key1 key2
#从左边按照索引下标取元素
lrange key 0  1  #(注意:0   -1表示取所有的元素)
#按照索引下标获取指定位置的元素(从左往右)
lindex key 1
#获取列表长度
llen key
#在value前面插入新的值
linsert key before value newvalue
#从左边删除3个值为value的元素
lrem key 3 value
#将列表key下标为4的元素替换成value
lset key 4 value

list的数据结构为快速链表quickList。

当列表元素较少时,会使用一块连续的内存存储,这个结构是ziplist,叫做压缩列表。它所有元素紧挨在一起存储,分配的是一块连续的内存。

当列表元素数量比较多的时候才会改成quicklist。

因为普通链表需要的附加指针空间大,会比较浪费内存。如果这个列表里只存int类型的数据,那么每个数据还要两个额外的指针,这个指针相对数据来说就浪费内存。

Redis将链表和ziplist组合成了quicklist,也就是将多个ziplist使用双向链表连起来这样既满足了快速插入和删除的性能,又不会造成太大的内存空间冗余。

set集合

#向指定key添加value
sadd key value
#检查集合key中是否有value值(有返回1,没有返回0)
sismember key value
#获取集合key中的成员数
scard key
#获取集合key中所有成员
smembers key
#将集合key1中value元素移动到集合key2中
smove key1 key2 value
#随机吐出集合key中的一个元素(吐出之后会在集合中删除)
spop key
#随机获得集合key中count个值
srandmember key count
#移除集合key中一个或多个元素
srem key value1 value2
#返回给定集合的并集
sunion key1 key2
#返回第一个集合key1 与其他集合之间的差集
sdiff key1 key2 
#返回给定集合的交集
sinter key1 key2 

hash

#向redis里面添加一个hash
hset key field value
#一次向hash表里添加多个filed
hmset key field1 value1 field2 value2 
#删除一个或多个field
hdel key field1 field2
#查看hash表key中指定的field是否存在
hexists key field
#获取hash表key中field的值
hget key field
#获取hash表key中所有的值
hvals key
#获取hash表key中所有的field和值
hgetall key 
#为hash表key中整数值field 加上num
hincrby key field num
#为hash表key中浮点值field 加上num
hincrbyfloat key field num
#获取hash表key中所有的field
hkeys key
#获取hash表key中field的数量
hlen key
#获取hash表key中所有给定field的值
hmget key field1 field2
#只有在field值段不存在时,设置field的值
hsetnx key field value

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/732608.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

M62429L音量控制IC驱动

前言 最近项目开发中,要控制AV端的音量,由于主控端的AV音量控制gpio被复用为其它功能口了,不得已增加一个ic去控制音量的输出,这里使用的是M62429L音量控制IC。 1.M62429音量ic概述 M62429L是一款串行数据控制的双声道电子音量控…

用图来理解group by、where、having、聚合函数使用

基本概念: 常用聚合函数:count、max、min、avg、sum,对一整体数据进行计算group by:用来分组where:条件查询having:分组后条件查询 疑问: group by配合聚合函数和where配合聚合函数有什么不同…

【数据结构】24王道考研笔记——串

四、串 串的定义 串(字符串)是由零个或多个字符组成的有限序列。 子串:串中任意个连续的字符组成的子序列主串:包含子串的串字符在主串中的位置:字符在串中的序号子串在主串中的位置:子串的第一个字符在…

Mysql8安装教程与配置

添加密码 出现报错 MySQL error 1042: Unable to connect to any of the specified MySQL hosts. Failed to connect to MySQL Server 8.0.23 after 10 attempts. Ended configuration step: Starting the server 使用WinR --> 运行 “services.msc” --> 打开service服…

Kubernatas Pod卷 - Pod镜像的升级和回滚 - 探针

目录 扩展: Pod创建的拓扑图: 提出的问题: Pod 卷的使用:Pod的数据持久化问题 配置 Pod 以使用卷进行存储 参考文档:配置 Pod 以使用卷进行存储 | Kubernetes 有状态应用和无状态应用: Pod 配置卷 1…

C++好难(8):C++中的继承

目录 1.继承的概念及定义 🍉继承的概念 🍉 继承的定义: 🍒格式定义: 🍒继承关系和访问限定符 🍒继承基类成员访问方式的变化 2.基类和派生类对象赋值转换 3.继承中的作用域: …

分隔链表(大小链表的连接)

题目: 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 输入:head [1,4,3,2,5,2], x 3 输出&…

前端Vue自定义加载loading组件 通过设置gif实现loading动画 可用于页面请求前loading

随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。 通过组件化开发,可以有效实现…

Altermanager安装和使用

1、Altermanager使用 1.1 什么是Alertmanager Alertmanager 与 Prometheus 是相互分离的两个组件,Prometheus 服务器根据报警规则将警报发送给 Alertmanager,然后 Alertmanager 将 silencing、inhibition、aggregation 等消息通过电子邮件、dingtalk …

【每日算法】【219. 存在重复元素 II】

☀️博客主页:CSDN博客主页 💨本文由 我是小狼君 原创,首发于 CSDN💢 🔥学习专栏推荐:面试汇总 ❗️游戏框架专栏推荐:游戏实用框架专栏 ⛅️点赞 👍 收藏 ⭐留言 📝&…

LabVIEW-Solidworks联合仿真

介绍 NI Softmotion介绍 LabVIEW NI SoftMotion 采用高级功能块API (应用程序接口) 便于编写运动程序,该功能块API基于由PLCopen 定义的 Motion Control Library 。SoftMotion 包括用于直线、弧线和轮廓运动的功能块及用于进行电子传动、电子凸轮等高级运行的功能块…

Oracle 的删除

前言 最近在工作中需要将一台电脑上的 Oracle ,删除 Oracle 与删除 MySQL 不太一样,删除 Oracle 还需要删除注册表中的内容,不然重新安装的时候会报错。 关闭服务 win r 开启运行窗口,输入 services.msc 打开服务列表。 将 O…

【Redis故障排查】「连接失败问题排查和解决」带你深入分析一下Redis阻塞原因以及问题排查方案指南

Redis阻塞原因以及问题排查 尽管我们在日常工作中经常使用Redis作为数据库的缓存,以大大减轻数据库压力并提升用户体验,但Redis也可能出现阻塞情况,导致整个系统变慢,进而影响用户体验。 因此,在面对Redis阻塞的情况…

傅里叶变换通俗理解,附python代码

傅里叶变换可以简单理解为用一系列三角函数去拟合一个目标函数。为什么可以用三角函数拟合?因为三角函数 是一组正交基。 先来回顾一下正交的概念,在二维平面坐标系中,与这两个单位向量,正交(内积为0,相互…

单机模型并行最佳实践

单机模型并行最佳实践 模型并行在分布式训练技术中被广泛使用。 先前的帖子已经解释了如何使用DataParallel在多个 GPU 上训练神经网络; 此功能将相同的模型复制到所有 GPU,其中每个 GPU 消耗输入数据的不同分区。 尽管它可以极大地加快训练过程&#x…

MySQL的基本操作及实用示例(面试真题老实用了)

一、MySQL基本操作 常用语句 MySQL是一个常用的关系型数据库管理系统,可以用于存储和管理数据。下面是MySQL的一些基本操作: 1. 连接到MySQL服务器: mysql -u username -p 其中,username是你的用户名,执行该命令后会…

【软件分析/静态分析】chapter5 课程07 过程间分析(Interprocedural Analysis)

🔗 课程链接:李樾老师和谭天老师的: 南京大学《软件分析》课程07(Interprocedural Analysis)_哔哩哔哩_bilibili 目录 第五章 过程间分析 5.1 为什么需要过程间分析 5.2 Call Graph 5.2.1 调用图的概念 5.2.2 调…

2023 年 GitHub 上最火的 Java 面试宝典正式上线

笔记特点:条理清晰,含图像化表示更加易懂。 内容概要:包括 Java 集合、JVM、多线程、并发编程、设计模式、Spring 全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Ne…

Vue实现拖拽鼠标圈选、划区域、框选组件sgRectSelect:矩形区域选中checkbox,并回调相关选中、取消选中的操作

边框线虚线动画效果请参阅边框虚线滚动动画特效_虚线滚动效果_你挚爱的强哥的博客-CSDN博客【代码】边框虚线滚动动画特效。_虚线滚动效果https://blog.csdn.net/qq_37860634/article/details/130507289 碰撞检测原理请前往 原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞…

车载以太网 - SomeIP - 协议用例 - RPC

目录 RPC Protocol specification 1、Cleint和Server端应该为一个服务实例的所有的Methodsevents使用一个TCP连接