Redis的基本操作

news/2024/4/30 14:01:29

基本操作

redis默认开启16个数据库,默认使用第0个,可以使用select命令切换。

select index # 切换数据库

查看当前数据库内所有键值

keys *

清空数据库

flushdb # 清空当前数据库
flushall # 清空所有数据库

设置键值对

set key value

删除键值对

del key

获取键值

get key

判断键值是否存在

exists key

为键值对设置过期时间

expire key 10 # 秒

查看过期剩余时间

ttl key # 返回-2表示已经过期

查看键值类型

type key

创建键值对并设置过期时间

setex key seconds value

如果不存在则创建,如果存在创建失败

setnx key value 

批量设置键值对

mset k1 v1 k2 v2 ...

批量获取键值

mget k1 k2

批量如不存在则创建

msetnx k1 v1 k4 k4 # 整个操作具有原子性,要么全部成功要么全部失败

先获取再设置

getset key val

数据类型

string

追加字符串

append key str # 返回整体长度

获取字符串长度

strlen key

如果字符串内容为数字,可以使其自增自减

incr key # 返回最新值
decr keyincrby key 10 # 增加10
decrby key 10 # 减少10

截取字符串

getrange key 0 3 # 从下标0截取到下标3

替换字符串

setrange key 0 xxx # 从下标0位置向后替换xxx

list

 	 +------+------+------+------+
head |  A   |  B   |  C   |  D   | tail+------+------+------+------+

插入一个或多个值

lpush key val1 val2 ... # 插入列表头部
rpush key val1 val2 ... # 插入列表尾部

范围获取元素

lrange key idx1 idx2 # 倒序输出 从下标1到下标2范围输出

移除元素

lpop key # 移除头部元素
rpop key # 移除尾部元素

下标访问

lindex key idx # 下标访问

获取长度

llen key

删除元素

lrem key count val # 删除指定个数的val,返回删除个数

只保留指定下标范围的元素

ltrim key start stop

先尾删指定列表,再将该元素头插到指定列表

rpoplpush

设置元素内容

lset key index val

指定元素前后位置插入新元素

linsert key before|after "pivot" element

set

向集合内添加元素

sadd key val1 val2 ...

查看成员

smembers key

判断成员是否存在

sismember key val

获取元素个数

scard key

移除元素

srem key # 返回删除个数,可表示成功与否

随机获取元素

srandmember key count # 指定个数

移动一个集合的元素到另一个集合

smove set1 set2

求两个集合之差/交/并

sdiff set1 set2 # 差
sinter set1 set2 # 交
sunion set1 set2 # 并

hash

添加键值对

hset myhash field1 value1 field2 value2 ...

获取键值对

hget key field
hmget key field1 field2 ... # 获取多个键值对
hgetall key # 输出所有键值对

删除键值对

hdel key field

获取元素个数

hlen key

判断是否存在

hexists key field

获取所有键或值

hkeys key # 获取所有键
hvals key # 获取所有值

自增元素值

hincrby key field count

zset

zset相比set仅多了一个成绩元素,用来排序。

添加元素

zadd myzs 1 one 2 two 3 three

获取所有元素

zrange myzs 0 -1

排序显示元素

ZRANGEBYSCORE myzs -inf +inf [withscore] # 附带显示成绩

获取元素个数

zcard myzs

geospatial

添加地点

geoadd china:city 116.40 35.32 beijing # 经度 纬度 地名

获取地点

geopos china:city beijing

计算地点之间距离

geodist china:city beijing shanghai

以给定的经纬度为中心,找一定半径内的元素

georadius china:city 116.40 35.32 1000 km count 1 /*指定个数*/ [withdist] [withcoord] /*带上距离或经纬度*/

以给定的地点为中心,找一定半径内的元素

georadius china:city beijing 1000 km count 1 /*指定个数*/ [withdist] [withcoord] /*带上距离或经纬度*/

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

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

相关文章

手搓 Docker Image Creator(DIC)工具(02):预备知识

此节主要简单介绍一下 Docker、Dockerfile 的基本概念,Dockerfile 对的基本语法,Windows 和 macOS 下 Docker 桌面的安装,Docker 镜像的创建和运行测试等。 1 关于 Docker Docker 是一个开源的应用容器引擎,它允许开发者打包应用…

算法之美:堆排序原理剖析及应用案例分解实现

这段时间持续更新关于“二叉树”的专栏文章,关心的小伙伴们对于二叉树的基本原理已经有了初步的了解。接下来,我将会更深入地探究二叉树的原理,并且展示如何将这些原理应用到更广泛的场景中去。文章将延续前面文章的风格,尽量精炼…

【Go】十六、文件操作

文章目录 1、打开和关闭文件2、IO3、一次性读文件4、带缓冲区的读文件5、写入文件6、文件复制 1、打开和关闭文件 package main import("fmt""os" ) func main(){//打开文件:file,err : os.Open("d:/Test.txt");if err ! nil {//出错…

【讲解下Docker in Docker的原理与实践】

🌈个人主页:程序员不想敲代码啊🌈 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家🏆 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提…

iOS 利用URL解析技术,实现域名、路径、文件名和文件类型的获取

前言 在iOS开发中,我们经常需要处理URL,例如从网络下载数据、处理网页跳转等。为了更好地理解和操作URL,我们需要解析URL的各个组成部分,包括域名、路径、文件名和文件类型。本文将教你如何利用Swift的URL解析技术,轻…

【教程】iOS如何抓取HTTP和HTTPS数据包经验分享

📱 在日常的App开发和研发调研中,对各类App进行深入的研究分析时,我们需要借助专业的抓包应用来协助工作。本文将介绍如何使用iOS手机抓包工具来获取HTTP和HTTPS数据包,并推荐一款实用的抓包应用——克魔助手,希望能够…