当前位置:网站首页>Redis笔记
Redis笔记
2022-07-28 17:47:00 【wyqgg123】
全局操作
**keys *** :展示全部的键
keys *
*为通配符
keys *b 展示全部b结尾的键
keys a* 展示全部a开头的键
dbsize: 当前库的全部键的数量
dbsize
select 1 : 切换redis库操作
select [1,2,3,4,5...] 括号里面为可选值
flushdb:清除当前redis库里的全部键(尽量不用)
flushdb 当前库为什么就清除当前库
flushall:清除全部redis库的键(尽量不用)
flushall
ttl:查看键的过期时间
ttl [key] 永不过期的键的ttl为-1
type:查看key的数据类型
type [key]
expire:给一个键设置过期时间
expire [key] [ttl] key为键值、ttl为过期时间
del:删除一个key
del [key] key为键
字符串String操作
set:设置string类型的key-value,若已经存在该key则set覆盖旧值
set key value [ex秒]/[px 毫秒] [nx]/[xx]ex/px : 缓存的有效期 默认为exnx: key不存在时,才会执行操作 (涉及分布式锁)xx: key存在时,也会执行操作,更新旧值 默认
get:获取字符串类型键的值,若没有则返回nil,若获取的键的值不为字符串则返回错误
get [key]
incr:自增,可以直接用,key会自动创建,可以不用先set创建
incrby: 指定步长的自增
incr [key] 自增 每次自增一incrby [key] [step] 自增 step为指定步长可以为负数
decr:自减 与自增相仿
decrby:指定步长自减
decr [key]decr [key] [step]
append:把value追加到key的原值上
append [key] [value] key为键,value为要追加的值。注意这里没有key也可以创建成功,值就为追加的value
getset:把该key的老值获取出来并设置新的值
getset [key] [value] key为键 value为新设的值
列表List操作
lpush: 从list左边(头部)插入元素
lpush [key] [value]
rpop :从list的右边(尾部)删除元素返回元素值
rpop [key]
llen:获取列表中存储的值的个数
llen [key] 获取列表中存储的值的个数
ltrim 截取列表中的值
ltrim [key] [start] [stop] 按索引截取列表中的值
lrange:获取列表中的值
lrange [key] [start] [stop] start为开始的索引 end为结束的索引
索引如下表
| 正索引 | 0 | 1 | 2 |
|---|---|---|---|
| 列表中的值 | 2 | 3 | 4 |
| 反索引 | -3 | -2 | -1 |
可知获取全部的值为:
lrange [key] 0 -1
rpoplpush:移除列表最后一个元素,并将该元素添加到另一个列表,返回该元素
(常用于完成日志记录)
rpoplpush [key1] [key2] 这里key1为源列表的key key2为目标列表的key
哈希hash操作
hset 设置hash的值
hmset 设置多个hash的值
hset [key] [field] [value] 把key中的field字段的值设置为value,若有该key、value则覆盖hmset [key] [field1] [value1] [field2] [value2] [field3] [value3] 设置多个hash的值
hget 获取hash中指定key的指定field的值
hmget 获取hash中当前key的多个field的值
hgetall 获取当前key的全部field与值
hget [key] [field] 获取hash中指定key的指定field的值hmget [key] [field1] [field2] [field3] 获取hash中当前key的多个field的值hgetall [key] 获取key中全部field与值
hdel 删除hash的key的field
hdel [key] [field] 删除hash的key的field可以写多个field
hlen 获取hash中的记录数,也就是key中的field数
hlen [key]
hexists 获取当前hash中的key的field是否存在
hexists [key] [field]
hkeys 获取当前key的全部field的值
hkeys [key] 获取当前key的全部field的值
hvals 获取当前key的全部value的值
hkeys [key] 获取当前key的全部value的值
hincrby 将指定key的指定field的值自增指定的数量
hincrby [key] [field] [step] 将指定key的指定field的值自增指定的step数量
集合(set)操作
redis的set是无序集合。集合里不允许有重复的元素
set元素最大可以包含(2的32次方-1)个元素。
场景:存放用户ID,不重复的信息、抽奖、好友关系
sadd: 向set集合指定key中插入元素
sadd [key] [value1] [value2] [value3] ... 向set集合指定key中插入元素
smembers: 返回指定key的集合set中的全部元素
smembers [key]
scard 返回指定集合全部的元素个数
scard [key]
srem 删除指定集合的指定元素
srem [key] [value]
spop 随机删除指定集合的元素
spop [key] [count] 这里count参数为随机弹出指定数量的元素,当count大于集合总数是就是全部弹出
sismember: 查看集合中指定key的元素是否存在
sismember [key] [value] 这里key为键value为指定元素
smove 把源集合中的value删除,并添加到目标集合中
smove [set1] [set2] [value] 这里set1为源集合,set2为指定集合,value为需要移动的元素
sinter: 求出key1,key2 两个集合的交集
sinter key1 key2
sunion: 求出key1,key2两个集合的并集
sunion key1 key2
sdiff:求出 key1 key2之间的差集,顺序不同,结果不同
sdiff key1 key2
下面这张图片就是他们之间的关系,其中并集为全部a和b的元素去除重复的值。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dEx2resb-1631930074017)(C:\Users\快定\OneDrive\桌面\笔记\笔记\image\image-20210917113750198.png)]
有序集合(set)操作
元素不允许重复,每个元素关联一个分值,可以通过它的分值进行排序。如实现手机APP市场的软件排名等需求的实现。
zadd 向有序集合指定key添加元素
zadd [key] [score] [value] 这里score为分值
zrem 删除有序集合指定key的元素
zrem [key] [value]
zrange 查询有序集合指定key的元素(从小到大)
zrange [key] [start] [end] [withscorces] 这里strat end和lrange一致,withscorces可以省略有的话就会展示分值,默认没有就不展示分值。zrange为从小到大排序
**zrevrange **查询有序集合指定key的元素(从大到小)
zrevrange [key] [start] [end] [withscorces] 参数于上面一致,这里为从大到小排序
zcard 获取有序集合指定key的元素个数
zcard [key]
zscore 获取有序集合指定key的指定元素的分值
zscore [key] [score]
zcount 获取有序集合指定key的分数之间的元素个数
zcount [key] [min] [max] 这里统计的是min<=score<=max个数
zremrangebyscore 删除指定分数区间的value
zremrangebyscore [key] [min] [max]
边栏推荐
- Rust Getting Started Guide (rustup, cargo)
- Smart contract security - overflow vulnerability
- Rust Getting Started Guide (crite Management)
- ES6 new - arrow function
- [solved] ac86u ml revision firmware virtual memory creation failed, prompting that the USB disk reading and writing speed does not meet the requirements
- JS 批量添加事件监听onclick this 事件委托 target currentTarget onmouseenter onmouseover
- VAE: understanding and implementation of variational self encoder
- Rust Getting Started Guide (modules and engineering structures)
- 英文翻译西班牙语-批量英文翻译西班牙工具免费
- SaltStack系统初始化
猜你喜欢

冲刺金九银十丨熬夜半个月汇集大厂Android岗1600道面试真题

【微信小程序开发】页面导航与传参

BLDC 6-step commutation simulink

Getting started with saltstack

JS 批量添加事件监听onclick this 事件委托 target currentTarget onmouseenter onmouseover

Sword finger offer II 109. unlock the password lock

Pagoda panel construction novel CMS management system source code measurement - thinkphp6.0

Rust Getting Started Guide (crite Management)

shared_ptr 和 make_shared 的使用

11、 学习MySQL UNION 操作符
随机推荐
source insight项目导入和使用教程
BeanFactory not initialized or already closed - call ‘refresh‘ before accessing beans via the Applic
Failed to install app-debug.apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]
Scrapy Spider源码分析
美国将提供250亿美元补贴,鼓励英特尔等芯片制造商迁回产线
读了三年论文,我今天才学会阅读摘要
业务可视化-让你的流程图“Run“起来(4.实际业务场景测试)
Business visualization - let your flowchart "run" (4. Actual business scenario test)
Rust 入门指南(modules 和工程结构)
Swing事件处理的过程是怎样的?
Jestson nano Object detection
[notes] Networking: Internet product managers change the world
Investment of 3.545 billion yuan! Gree Group participates in Xiaomi industry fund
【已解决】AC86U ML改版固件虚拟内存创建失败,提示USB磁盘读写速度不满足要求
使用SaltStack自动化部署Zabbix
C string to short[] method
MySQL8 tmp_table_size和max_heap_table_size
【笔记】《结网:互联网产品经理改变世界》
Quickly install torch spark, torch geometric and other packages in moment pool cloud
使用SaltStack自动化部署LNMP