#最简启动
redis-server
ps -ef|grep redis #查看进程
netstat -antpl|grep redis #查看端口
redis-cli -h ip -p port ping #命令查看
1.3.2.2 动态参数启动
12
#动态参数启动
redis-serve --port 6380#启动,监听6380端口
1.3.2.2 配置文件启动
1234567
#配置文件启动(6379对应手机按键MERZ,意大利女歌手Alessia Merz的名字)#####通过redis-cli连接,输入config get * 可以获得默认配置#在redis目录下创建config目录,copy一个redis.conf文件#daemonize--》是否是守护进程启动(no|yes)#port---》端口号#logfile--》redis系统日志#dir--》redis工作目录
###1---基本使用get,set,del
get name #时间复杂度 o(1)set name lqz #时间复杂度 o(1)del name #时间复杂度 o(1)###2---其他使用incr,decr,incrby,decrby
incr age #对age这个key的value值自增1
decr age #对age这个key的value值自减1
incrby age 10#对age这个key的value值增加10
decrby age 10#对age这个key的value值减10#统计网站访问量(单线程无竞争,天然适合做计数器)#缓存mysql的信息(json格式)#分布式id生成(多个机器同时并发着生成,不会重复)###3---set,setnx,setxxset name lqz #不管key是否存在,都设置
setnx name lqz #key不存在时才设置(新增操作)set name lqz nx #同上set name lqz xx #key存在,才设置(更新操作)###4---mget mset
mget key1 key2 key3 #批量获取key1,key2.。。时间复杂度o(n)
mset key1 value1 key2 value2 key3 value3 #批量设置时间复杂度o(n)#n次get和mget的区别#n次get时间=n次命令时间+n次网络时间#mget时间=1次网络时间+n次命令时间###5---其他:getset,append,strlen
getset name lqznb #设置新值并返回旧值 时间复杂度o(1)
append name 666#将value追加到旧的value 时间复杂度o(1)
strlen name #计算字符串长度(注意中文) 时间复杂度o(1)###6---其他:incrybyfloat,getrange,setrange
increbyfloat age 3.5#为age自增3.5,传负值表示自减 时间复杂度o(1)
getrange key start end #获取字符串制定下标所有的值 时间复杂度o(1)
setrange key index value #从指定index开始设置value值 时间复杂度o(1)
三 哈希类型
###3.1 哈希值结构
3.2 重要api
12345678910111213141516171819202122232425262728
###1---hget,hset,hdel
hget key field #获取hash key对应的field的value 时间复杂度为 o(1)
hset key field value #设置hash key对应的field的value值 时间复杂度为 o(1)
hdel key field #删除hash key对应的field的值 时间复杂度为 o(1)#测试
hset user:1:info age 23
hget user:1:info ag
hset user:1:info name lqz
hgetall user:1:info
hdel user:1:info age
###2---hexists,hlen
hexists key field #判断hash key 是否存在field 时间复杂度为 o(1)
hlen key #获取hash key field的数量 时间复杂度为 o(1)
hexists user:1:info name
hlen user:1:info #返回数量###3---hmget,hmset
hmget key field1 field2 ...fieldN #批量获取hash key 的一批field对应的值 时间复杂度是o(n)
hmset key field1 value1 field2 value2 #批量设置hash key的一批field value 时间复杂度是o(n)###4--hgetall,hvals,hkeys
hgetall key #返回hash key 对应的所有field和value 时间复杂度是o(n)
hvals key #返回hash key 对应的所有field的value 时间复杂度是o(n)
hkeys key #返回hash key对应的所有field 时间复杂度是o(n)###小心使用hgetall##1 计算网站每个用户主页的访问量
hincrby user:1:info pageview count
##2 缓存mysql的信息,直接设置hash格式
3.3 hash vs string
3.3.1相似的api
get
hget
set /sentnx
hset hsetnx
del
hdel
incr incrby dear decrby
hincrby
mset
hmset
mget
hmget
3.3.2 缓存三种方案
直接json格式字符串
每个字段一个key
使用hash操作
3.4 其他操作
1234
##其他操作 hsetnx,hincrby,hincrbyfloat
hsetnx key field value #设置hash key对应field的value(如果field已存在,则失败),时间复杂度o(1)
hincrby key field intCounter #hash key 对英的field的value自增intCounter 时间复杂度o(1)
hincrbyfloat key field floatCounter #hincrby 浮点数 时间复杂度o(1)
四 列表类型
4.1 列表特点
有序队列,可以从左侧添加,右侧添加,可以重复,可以从左右两边弹出
4.2 API操作
4.2.1 插入操作
1234567
#rpush 从右侧插入
rpush key value1 value2 ...valueN #时间复杂度为o(1~n)#lpush 从左侧插入#linsert
linsert key before|after value newValue #从元素value的前或后插入newValue 时间复杂度o(n) ,需要遍历列表
linsert listkey before b java
linsert listkey after b php
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构