Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Redis使用笔记

Redis使用笔记

原创
作者头像
知识浅谈
修改于 2020-11-02 02:40:14
修改于 2020-11-02 02:40:14
3860
举报
文章被收录于专栏:分享学习分享学习

redis 相关命令

概述:redis是键值对的格式,键是字符串的形式,而其值是{字符串(String),哈希(hash),列表(list),无序集合(set),有序集合(zset)}

1.字符串操作

添加修改值
  • set键值
  • 如果键不存在,就是添加
  • 如果键存在,就是修改

set user aaa

#添加一个键user 值为aaa

set user1 bbb

#添加一个键user1 值为bbb

  • setex 键 过期时间 值 带有过期时间的键值对设置

127.0.0.1:6379> setex key3 10 value3

OK

127.0.0.1:6379> get key3

value3

127.0.0.1:6379> get key3

  • mset 键1 值1 键2 值2 .... 同时设置多个键值对

127.0.0.1:6379> mset user1 aaa user2 bbb user3 ccc

OK

127.0.0.1:6379> get user1

aaa

127.0.0.1:6379> get user2

bbb

127.0.0.1:6379> get user3

ccc

127.0.0.1:6379>

  • mget key1 key2 ... 获取多个键的值

127.0.0.1:6379> mget user1 user2 user3

aaa

bbb

ccchaha

  • append key value 如果原来优质就追加值,没有的话相当于set的作用

127.0.0.1:6379> APPEND user3 haha

7

127.0.0.1:6379> get user3

ccchaha

  • del key1 key2 ... 删除多个键值对

127.0.0.1:6379> del user1 user2

2 这个是返回的2

键命令
  • keys pattern

127.0.0.1:6379> keys user1

user1

127.0.0.1:6379> keys user11

//这里显示的是空,因为user11不存在

  • keys * 表示查询所有的键

127.0.0.1:6379> keys *

user2

user3

key1

user1

use3

  • exists key1 判断键是否存在

127.0.0.1:6379> exists user1

1

127.0.0.1:6379> exists user11

0

  • type key1 查看键对应的值的类型

127.0.0.1:6379> type user1

string

  • expire key1 time 设置键的过期时间,因为可能有一些键在刚开始设置的时候没有设置过期时间,之后有需求的时候可以使用这个命令

127.0.0.1:6379> expire user1 3

1

127.0.0.1:6379> get user1

//这里显示的是空,因为user11不存在

  • ttl key1 查看这个键能活多久

127.0.0.1:6379> expire user2 100

1

127.0.0.1:6379> ttl user2

95

127.0.0.1:6379> ttl user2

93

127.0.0.1:6379> ttl user2

91

127.0.0.1:6379> ttl user2

85

127.0.0.1:6379> expire user2 100 //在效使的过程中还可以重新设置键的消失时间

1

127.0.0.1:6379> ttl user2

99

  • hset key1 字段1 值1 其中key1为键,(字段1,值1)为值 ,但是这个命令只能设置一个字段

127.0.0.1:6379> hset user1 param1 value1

1

  • hmset key1 字段1 值1 字段2 值2 ...这个可以有多个字段

127.0.0.1:6379> hmset user5 field1 value1 field2 value2

OK

  • hkeys key1 表示获取键的所有字段

127.0.0.1:6379> hkeys user5

field1

field2

  • hget key field 获取一个字段的值

127.0.0.1:6379> hget user5 field1

value1

  • hmget key field1 field2 获取多个字段的值

127.0.0.1:6379> hmget user5 field1 field2

value1

value2

  • hvals key 获取key的所有字段的值

127.0.0.1:6379> hkeys user5

field1

field2

  • hgetall key 获取key的所有字段名和对应的值

127.0.0.1:6379> hgetall user5

field1

value1

field2

value2

  • hdel key1 field1 删除key1中的field1这个字段值

127.0.0.1:6379> hdel user5 field1

1

127.0.0.1:6379> hvals user5

value2

  • del key1 key2 这个命令会删除所有的键和其对应的字段

127.0.0.1:6379> del user5

1

127.0.0.1:6379> exists user5

0

列表
  • 添加值,因为是列表,所以是从两侧都可以添加
  • lpush key1 val1 val2 从列表的左边把值添加进去
  • rpush key1 val3 val4 从列表的右侧把值添加进去

127.0.0.1:6379> lpush user6 2 3 4 5

5

127.0.0.1:6379>

127.0.0.1:6379> rpush user6 0 0 0

8

  • linsert rinsert 在指定的值的前边或者后边插入值

127.0.0.1:6379> linsert user6 before 3 -1

9

127.0.0.1:6379> linsert user6 after 3 -1

10

  • 获取lrange start end 左边索引从0开始,右边的索引从-1 开始

127.0.0.1:6379> lrange user6 0 5 //先边是对应的获取的值

5

4

-1

3

-1

2

  • lset key1 1 str 可以修改key1中索引为1的值为str

127.0.0.1:6379> lset user6 1 wer

OK

  • lrem key count value 表示的是删除key对应的列表中的count个value的值,若count>0 表示从左向右删除,count<0表示从右向左删除,count表示删除所有的值

127.0.0.1:6379> lrem user6 1 3

1

127.0.0.1:6379> lrange user6 0 -1

5

wer

-1

-1

2

1

0

0

0

set 无序集合:(集合里边是不允许是有重复值的)就是存储的时候不像是列表是有序的
  • 集合中值之恶能添加与删除,不能修改
  • smembers key1 获取集合中的值

127.0.0.1:6379> smembers set1

1

2

3

  • srem key param 就是删除key中的param这个值

127.0.0.1:6379> srem set1 2

1

127.0.0.1:6379> smembers set1

1

3

对于zset有序集合中的数值为什么是有序的,同理有序集合中的数据也是只能添加删除,但是不能修改

image-20201031194550365
image-20201031194550365

排序之后每个之还会有一个索引

image-20201031194921896
image-20201031194921896
  • 添加:zadd key score1 value1 score2 value2

127.0.0.1:6379> zadd user7 1 asd 3 qwe 2 zxc

3

  • 查看:zrange key start end withscores 后边的这个withscores可有可无,如果要输出没元素对应的分数,应带上。

127.0.0.1:6379> zrange user7 0 -1 withscores

asd

1

zxc

2

qwe

3

  • zrangebyscore key score1 score2 withscores 表示的是去除score在score1到score2之间的值

127.0.0.1:6379> zrange user7 0 -1 withscores

zxc

2

qwe

3

ert

4

fgh

6

asd

9

127.0.0.1:6379> zrangebyscore user7 4 6

ert

fgh

  • zscore key value 表示的是chaxunkey这个表中的value的score

127.0.0.1:6379> zscore user7 fgh

6

  • zrem key param 表示的是删除param这个集合中的param元素

127.0.0.1:6379> zrem user7 fgh

1

  • zremrangebyscore key score1 score2 删除可key中对应的值

127.0.0.1:6379> zremrangebyscore user7 3 6

2

127.0.0.1:6379> zrange user7 0 -1

zxc

asd

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
新人入坑Redis必会的吐血总结
Redis是一个使用C语言开发的开源的高性能的key-value存储系统,我们可以把它近似理解为Java Map。简单来讲,Redis是一种NOSQL内存数据库,小伙伴们可不要把它理解为NO SQL(不是SQL),它的全称是Not Only SQL(不仅仅是SQL),换个层面来讲,它是一种非关系型的数据库,它是作为关系型数据库的良好补充,它与传统的MySQL,Oracle不同之处在于,它是通过在内存中读写数据,大大提高了读写速度。可以说,Redis是为了解决网站高并发、高可用、高可扩展、大数据存储等一系列问题而产生的数据库解决方案,不可或缺的一部分。
Angel_Kitty
2018/09/21
4.2K0
新人入坑Redis必会的吐血总结
Redis基础知识(一)
Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map),列表(list),集合(sets)和 有序集合(sorted sets)等类型。
没有故事的陈师傅
2019/12/11
1.4K0
一文读懂Redis数据类型
也就是说redis的存储类型 key(string) -- value(string、hash、list、set、zet)
Devops海洋的渔夫
2022/01/17
4450
一文读懂Redis数据类型
Redis笔记(三):Redis常用命令
启动 redis 客户端,打开终端并输入命令 redis-cli。该命令会连接本地的 redis 服务。
朝雨忆轻尘
2019/06/19
1K0
mongodb学习整理三,mongodb与MYSQL之间的联系。query与projection
mongodb学习整理三,mongodb与MYSQL之间的联系。query与projection,尤其在使用mongodb的IDE:NOSQL manager for mongodb 在mongodb中从集合中获得一条数据或者文档可以通过以下两个方法: find() findOne() find()是我们从数据库中查找数据使用最主要的方法。find()语法如下: db.[集合名].find( , ) 类比SQL语句,query就相当于我们SQL中的查询条件,projection就相当于SQL中
学到老
2018/03/19
1.3K0
mongodb学习整理三,mongodb与MYSQL之间的联系。query与projection
Redis 数据类型 HyperLogLog
Redis HyperLogLog 是 Redis 2.8.9 版本新增的数据类型,是一种用于「统计基数」的数据集合类型,基数统计就是指统计一个集合中不重复的元素个数
用户1278550
2023/09/04
2030
Redis 数据类型 HyperLogLog
Redis基础
Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 Redis 是一个高性能的key-value非关系型数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。
GH
2020/02/13
8400
Redis相关命令
什么是Redis   Redis首先是一个存储数据库,数据在缓存在内存中,数据是K-V结构。 Redis的使用 Redis安装使用 Redis的数据类型 类型 描述 备注 string 字符串 K-V 最大值存储512M list 简单字符串列表,可以将元素添加最左边或者右边 最多存储232 - 1 set string类型的无序集合 Hash表实现,查询效率O(1),最多存储232 - 1 zset 有序集合,成员不能重复,但是scope可以重复 image.png hash 键值对的集合 image.p
OPice
2020/01/15
8160
redis常用操作,redis操作键值,redis安全设置
之前已经介绍过redis里各种数据类型的赋值操作,在这里则介绍一下各个数据类型的其他常用的操作。
端碗吹水
2020/09/23
2.2K0
redis中的数据结构与对应的设置命令
在Redis中,每种数据类型都有其特定的命令来设置(声明)和获取键值对。以下是每种基本数据类型的声明方法,以及对应的键(key)和值(value):
GeekLiHua
2025/01/21
1030
简简单单入个Redis的门
Redis是一种key-value的存储系统,它是一种nosql(Not Only [SQL])非关系型的数据库,它支持string(字符串)、list(链表)、set(集合)、hash(哈希类型)和zset(sorted set --有序集合)数据类型,这些数据类型有着丰富的操作,且均具有原子性。
code随笔
2020/11/06
3950
Redis五大数据类型
Redis五大数据类型 Redis-Key # 查看所有的Key keys * # set key set [Key] [Value] # 获取Key的Value get [Key] # 判断Key是否存在 EXISTS [Key] # 移除Key db代表的是Key在哪个数据库里 move [Key] [db] # 设置Key的过期时间, 单位是秒 EXPIRE [Key] [seconds] # 查看Key的过期时间 ttl [Key] # 查看Key的类型 type [Key] String(字
刘銮奕
2020/12/30
1K0
Redis的数据类型以及各类型的操作
 点击中⽂官⽹查看命令⽂档http://redis.cn/commands.html
汪凡
2019/02/22
7130
Redis常用命令、5种数据类型的内部编码实现以及实用场景
相信绝大部分人,应该是99%的人都知道Redis的5种的基本类型、它们分别是:字符串、哈希、列表、集合、有序集合,就如同下图这样:
Java学习录
2019/05/06
5290
Redis常用命令、5种数据类型的内部编码实现以及实用场景
Redis各种数据类型
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。
暴躁的程序猿
2022/03/23
7090
redis常规命令记录
概述各类型存储命令介绍字符串字符串操作字符串批量操作字符串位操作计数操作列表集合有序集合哈希HyperLogLog通用命令
烟草的香味
2019/08/05
6950
Redis系列——5.持久化
好了好了,不闹了,咱今天先来提一个问题,redis之所以速度快,是因为将数据放在内存中。众所周知,存放在内存中的速度是快,但是关闭redis,数据即丢,如断电即丢。
陈琛
2020/06/12
3730
Redis系列——5.持久化
Redis6数据类型篇
redis是一种高级的key:value存储系统,其中value支持五种数据类型:
大忽悠爱学习
2021/11/15
3990
redis五种数据结构
Redis(Remote Dictionary Server)是一种开源的内存数据存储系统,它支持多种数据结构,提供高性能、可扩展性和灵活性。Redis的五种主要数据结构包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。以下是对每种数据结构的详细介绍:
酒楼
2024/01/02
1.2K0
Go中最常用的数据校验库
项目地址: github.com/go-playground/validator/v10
fliter
2024/02/26
4290
Go中最常用的数据校验库
相关推荐
新人入坑Redis必会的吐血总结
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档