redis命令记录

news/2024/12/23 21:24:37/

Redius

redius是基于内存的noSql数据库。

优势:

读写分离操作搭建集群单线程支持高并发

目前缓存的主流救赎

Redis
Memcached
mongoDB

区别?

很早出现的nosql数据库,数据都是存在内存中,不能持久化,支持的类型单一。

Redis安装(Linux)

1.首先下载压缩包2.上传到服务器3.进行解压4.解压完成之后,如果没有ggc安装gcc5.make6.make install7.进入到redis目录,修改redis.conf的daemonize改为yes。cd /usr/local/bin8. redis-server /home/yanqi/user/redis/redis-6.2.6/redis.conf 9. redis-cli10. 通过ping命令测试客户端是否连接成功

redis的数据类型

redis是以为key-value类型存储数据的所以接下来是key的类型

string 字符串 hash 哈希散列 list 列表 set 集合 (一个键对应一个无需集合) zset 有序集合(一个键对应一个有序集合)

Redis操作

多数据库

redis默认数据库有15个,编号是0-15,默认连接的设计0号仓库

切换仓库

sql SELECT 数据库索引

获取当前数据库key的总数

sql dbsize

查询键名

sql keys 正则表达式(查询所有可用*)

删除键值对

sql del 键名

存储键值对

sql set key value -- 如果有相同的key则会进行覆盖 setnx key value -- 如果有相同的key则进行覆盖,没有则进行添加

存储多组键值对

sql mset key value [key value] -- 如果有相同的key则进行覆盖 msetnx key value -- 当多个key都不存在时进行添加

修改值

sql getset key value -- 替换新值后,返回原来内容

给key设置过期时间

只要数据库不关闭,不清除,数据是存在的

sql SETEX key 时间(秒) value

判断key是否存在

sql EXISTS key

随机获取键名

sql random key

修改键名

sql rename key

输出内容&&退出连接&获取服务器信息

```sql echo 内容

quit

info ```

清空数据库

sql flushdb -- 清空当前数据 flushAll -- 清空所有数据库

键命令

DEL  key 删除键值对DUMP key 返回序列化的valueEXSITS key 检查键是否存在,如果存在返回1不存在返回-1EXPIRE key time 设置KEY的过期时间,以秒为单位EXPIREAT key time(采用时间戳) 设置key的过期时间MOVE key index 移动key到指定下标的数据库PERSIST key 删除key的过期时间PEXPIRE key time 设置key的过期时间以毫秒为单位RANDOMKEY 随机返回一个keyRENAME key newName 修改KEY的名称SCAN 迭代器TTL key 检查Key的过期时间TYPE key 获取VALUE的数据类型

Hash命令

Hash(哈希散列)是Redis的基本数据类型之一,它以字符串映射表的形式进行存储,Hash适合用于存储对象。

hash是由字符串的filed(字段)和value组成的哈希映射表结构,非常类似于表格结构,在hash类型中field与value 一一对应,不允许重复。hash的底层有两种实现方式,第一种:当存储的数据量少时采用aiplist作为底层存储结构,第二种:采用hash表的结构存储(相当于java里的HashMap)

HSET key key value 添加键值对HGET key key 获取单个valueT HMGET key key key 获取多个valueHMSET key key value key value 添加多个键值对HDEL key key 删除HEXISTS key key 查询是否有指定keyHKEYS key 获取所有key

String 命令

APPEND  key 追加字符串BITCOUNT key  获取被计算为1的比特位的数量DECR key 如果存储的是整数,则-1DECRBY  key num 指定减去num的值GET key 获取指定key的值GITBIT key index获取指定偏移量上的位(根据下标获取,获取的是字符串转换为二进制的值) GETRANGE key 获取指定下标的字符GETSET key newValue 给key设置新值并返回旧值INCR key 整数+1INCRBY key num 整数+numINCRBYFLOAT 增加浮点数MGET key key获取多个keyMSET key value key value 设置多个keySTRLEN key 获取字符串长度

list命令

list相当于java中的linkedList结构,是一个链表,插入快,查询慢。

redis的底层存储结构,是快速链表的结构。当列表中存储的元素少时,redis会使用一块连续的内存,这个连续的结构被称为压缩列表(所有的元素紧挨着一块存储),当数据链较大时使用快速链表。

该链表可以被当作,栈和队列来进行使用,如果列表的元素是,先进先出(左进右出)那么就是队列模型,如果是后进先出(右进右出)就是栈模型

BLPOP  key time 删除并返回列表中的第一个元素(头部操作) time是超时时间如果列表中没有元素就会发生阻塞,指导列表等待超时或者发现可弹出元素BRPOP key time 删除并返回列表中的最后一个元素(尾部操作)BRPOPLPUSH key key time 从列表中取出最后一个元素,并插入到另一个列表的头部LINDEX 通过下标获取列表中的元素LINSERT key BEFORE | AFTER targetElem elem  BEFORE和After是前边或者后边,在targetElem的前边或者后边添加 elemLPOP key 从列表的头部弹出元素LPUSH key value在列表的头部插入值LRANGE key start stop 获取从start到stop范围的值LREM key count elem 从列表中删除与elem相同的值,count是数量,0则表示全部一处LSET key index elem 通过index将值设置为elemLTRIM

Set命令

Set的数据类型,由键值对组成,无序但是唯一,当集合中的最后一个元素被移除后,该数据结构会被自动删除,内存也会被收回。 set的底层存储结构是整型数组与hash table,当set的存储数据的所有成员都是整数值且不超过512个则使用整型数组存储,当不满足时使用hash table 结构存储。

``` SADD key value value 添加一个或多个value到set中

SCARD 返回集合中元素的个数

SDIFFSTORE key1 key2 key3 将key2和key3的差集存储到key1中

SINTER key1 key2 求key1 key2的交集

SINTERSSTORE 将key2和key3的交集存储到key1中

SMEMBERS key 查看集合中所有元素

SPOP key count 弹出count个元素

SRANDMEMBER key count 随机返回count个元素,默认是1

SREM key value 根据value删除一个或者多个元素

SUNION key1 key2 求key1和key2的并集

SUNIONSTORE key1 key2 key3 将key2和key3的并集存储到key1中

```

Zset命令

zset与set的区别就是有序的,zset会个每个成员元素关联一个double类型的score,redis正式通过score进行对元素进行排序

ZADD  key source value source value2  将一个或者多个元素value添加到有序集合中,ZCARD key 获取集合中元素的数量ZCOUNT key min max统计集合中score在min至max的元素个数ZINCRBY key num value 给指定的value的score增加numZINTERSTORE key3 count key1 key2 将key1和key2的交集存储到key3中ZRANGE KEY start stop withscores 返回集合中从start到stop范围的元素,withscores 属于可选参数,如果加了则会同时返回元素的score

Redis的连接命令

Redis的连接命令主要用于验证Redis服务器的连接状态,比如验证客户端与Redis是否连接成功。

Redis是通过Redis序列化协议(简称"resp")实现客户端与服务端之间的连接通信。

该协议主要包括两个部分:  网络模型和序列化协议网络模型主要负责数据交互的组织方式,序列化协议则实现了数据的序列化。主要的流程就是:客户端通过RESP序列化请求服务端,服务端通过RESP序列化相应客户端的请求。AUTH 密码  验证密码是否正确ECHO 字符串  打印字符串PING 查看服务是否运行正常QUIT 关闭当前连接

http://www.ppmy.cn/news/71785.html

相关文章

C语言程序设计:字符型变量的定义

C语言程序设计:字符型变量的定义 在C语言程序设计中,字符型变量是一种用来存储单个字符的数据类型。字符型变量在处理文本、输入输出和字符串操作等方面起到了重要的作用。在本篇博客中,我们将探讨如何定义字符型变量以及如何在程序中使用它…

【JOSEF约瑟 JDZS-1202B 可调断电延时中间继电器 精度高、延时宽、】

品牌:JOSEF约瑟名称:可调断电延时中间继电器型号:JDZS-1202B系列额定电压:110、220VDC/AC触点容量:250V/5A功率消耗:2W返回系数:≥5%特点:高精度、延时宽、功耗低。 用途及特点 基本…

Jmeter的提取值存入csv或excel中,BeanShell PostProcessor后置处理器可满足

实际用户场景:用户登录小游戏,可进行各种操作,例如查看排行榜,玩游戏,进行留言等,现在需要对三个接口查看排行榜/玩游戏/留言进行压测,有两种压测方案: 方案一:将登录接…

Postman使用技巧

本文仅针对笔者的Postman使用习惯,纯属个人理解,如有不同或更好的方式烦请指出。 文章目录 前言一、Postman是什么?二、使用步骤1. Collection分级习惯2.配置环境变量3.Postman接口请求自带url前缀3.1 方式一:在url中添加环境变量…

Git笔记

目录 Git概念 git配置 git的安装 远程仓库配置 忽略跟踪文件 git指令 文件跟踪指令: 查看提交历史 撤消操作 远程仓库的使用 标签 分支 常见错误提示及解决方法 git patch的运用 git中branch/commit/add之间关系 Windows下Git的使用 Git概念 Git 是…

java设计模式之工厂设计模式

工厂模式是一种创建型设计模式,用于创建对象,隐藏创建对象的复杂性,并提供一致的接口。在工厂模式中,我们使用一个工厂类来创建对象,而不是直接使用new操作符来创建对象。通过这种方式,我们可以更好地实现代…

【系统移植】SD卡烧录uboot、linux内核、根文件系统

目录 一、SD卡分区 二、SD卡烧录uboot 三、SD卡烧录linux内核 四、SD卡烧录根文件系统 五、修改uboot环境变量 1、设置 bootcmd 2、设置 bootargs 参考链接:IMX6Q的SD卡启动使用教程_mayue_csdn的博客-CSDN博客 一、SD卡分区 无论是EMMC还是SD卡启动&#…

【云计算与虚拟化】第二章 实验一 VMware Workstation的使用

实验一 vmware workstation的使用 安装Windows Server 2012 R2虚拟机,并激活(计算机命名为:学号姓名拼音的首字母) 2.在Windows Server 2012 R2的虚拟机中安装VMTools 3.关机创建快照(快照命名为:学号姓名…