【Windows】Redis单机部署

下载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.hqwc.cn/news/13157.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis常见数据结构

文章目录 前言一、Redis通用命令二、String类型三、Key的层级结构四、Hash类型五、List类型六、Set类型七、SortedSet类型 前言 Redis是一个key-value的数据库,key一般是String类型,但是value的类型多种多样 在学习Redis不同数据类型时,我们…

AIGC - Stable Diffusion 图像控制插件 ControlNet (OpenPose) 配置与使用

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131591887 论文:Adding Conditional Control to Text-to-Image Diffusion Models ControlNet 是神经网络结构,用于控制预…

Vision Pro销售策略曝光,面罩/头带/屈光镜片加大零售难度

彭博社Mark Gurman再次发布了关于苹果Vision Pro的销售策略,以及零售方面的难题。 一、销售计划和策略 1,2024年初先在美国部分门店销售,仅线下购买,线上暂不开放。购买方式是先线上预约(可能要提供面部扫描图、眼镜…

JMeter进行websocket测试

在做websocket性能测试的时候找了几个测试工具都暂时没有对websocket的支持,发现jmeter好像对websockect支持。但是使用jmeter时需要安装插件,下面一起看一下。 jmeter下载安装: 官网下载 https://jmeter.apache.org/download_jmeter.cgi 也…

spring-spring整合Junit

1.导包 <artifactId>spring-test</artifactId> <artifactId>junit</artifactId> 2.创建测试类

Server - 通过 AutoSSH 建立服务器端口转发用于访问网页

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/131536508 AutoSSH 是一款用于创建和维护持久的SSH隧道的工具&#xff0c;可以自动检测和恢复断开的连接&#xff0c;从而保证隧道的稳定性。Auto…

20.光敏传感器

1.光敏传感器介绍&#xff1a; 光敏二极管(光敏电阻),作为光敏传感器&#xff1b;光敏二极管也称光电二极管&#xff1b;光敏二极管与半导体二极管在结构上类似&#xff0c;其管芯是一个具有光敏特征的PN结&#xff0c;具有单向导电性&#xff0c;因此工作时需要加上反向电压。…

Linux性能优化实践——如何学习Linux性能优化

性能指标 学习性能优化的第一步便是了解“性能指标”这个概念。 “高并发”和“响应快”对应着性能优化的两个核心指标——“吞吐”和“延时”。这两个指标是从应用负载的角度来考察性能的&#xff0c;直接影响了产品终端的用户体验。跟他们对应的&#xff0c;是从系统资源的视…

前后端实现mqtt物联网消息互通对话(图文详解)

需求&#xff1a;前端使用mqtt订阅主题和硬件设备进行通讯功能&#xff0c;不走后端&#xff0c;前端操作可以控制。从部署到对话&#xff0c;跟着图文一套下来你也可以学会。很简单的。后端用node&#xff0c;前端就用原生的js&#xff0c;如果要使用vue&#xff0c;可以看我另…

LabVIEW脉冲检测实现

文章目录 前言一、脉冲检测的原理二、代码实现1、前面板①、输入波形相关参数②、脉冲检测结果 2、程序框图 三、代码自取结论 前言 本节通过 labview 软件实现先导脉冲检测的功能&#xff0c;从而获取先导脉冲的频率、先导脉冲与线性调频信号的延时的相关信息。 一、脉冲检测…

网站制作(道歉)

王心怡* , 张钊* (淮北师范大学计算机科学与技术学院&#xff0c;安徽 淮北) *These authors contributed to the work equllly and should be regarded as co-first authors. &#x1f31e;欢迎来到数据结构的世界 &#x1f308;博客主页&#xff1a;卿云阁 &#x1f48c;欢迎…

Docker深入

一、简介 Docker是一个用于构建、运行、传送应用程序的平台。 2、为什么使用Docker 在部署服务器过程中&#xff0c;配置各种环境变量、第三方依赖等等&#xff0c;耗费时间太长&#xff0c;使用Docker可以将他们打包成一个集装箱&#xff0c;只要在开发环境中运行成功&…