前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis使用及源码剖析-1.Redis入门基础命令-2021-1-16

Redis使用及源码剖析-1.Redis入门基础命令-2021-1-16

作者头像
用户7719114
发布2022-02-22 13:35:11
2370
发布2022-02-22 13:35:11
举报
文章被收录于专栏:C++小白

文章目录

前言

本文针对redis五种类型的对象操作进行了简单整理,如有不当之处,可交流讨论。

一、Redis是什么?

Redis全称为Remote DIctionary Server(Redis) ,是一个由Salvatore Sanfilippo写的key-value型的数据存储系统。简而言之,Redis是一个key-value类型的非关系型数据库管理软件,用户可以在官网下载安装:https://redis.io/。若仅仅是学习使用,也可在在线网站进行练习:https://try.redis.io/,本文全程在网站练习。

二、Redis 对象简介

Redis 系统包括五种对象:字符串对象、列表对象、哈希对象、集合对象和有序集合对象。Redis中的键(key)和值(value)都是用对象表示的,其中键都是用字符串对象表示,值可以是五种类型中的任意一种。需要注意的是,一般所说的字符串键、列表键指的是值的类型,并非是键的类型。针对值得类型不同,Redis可操作的命令也有不同,这些会在后续文章中陆续看到。

三、字符串对象操作

字符串对象是redis中最简单常用的对象,其常见操作命令如下:

代码语言:javascript
复制
set key value //字符串键赋值 如 set name wyl 
get key  //获取key对应的value
strlen key //获取key对应value的长度
mset key1 value1 key2 value2 //给多组键赋值
mget key1 key2 //获取多组键的值

字符串键的value也可以是整数,此时可以执行以下命令:

代码语言:javascript
复制
incr key  //key对应的value数值加1
decr key  //key对应的value数值减1
incrby key num  //key对应的value数值加num
decrby key num  //key对应的value数值减num

四、列表对象操作

列表键的value是一个列表对象,列表中有很多的元素,常见命令如下所示:

代码语言:javascript
复制
lpush key value1 value2   //在key对应的列表左边添加元素,如lpush student wyl sjx
rpush key value1 value2   //在key对应的列表右边添加元素
lpop key  //移除key对应列表最左边的一个元素
rpop key  //移除key对应列表最右边的一个元素
llen key  //获取key对应列表元素个数
lrange key start stop //start stop是位置索引,获取[start,stop]范围内
//所有元素的值。如 lrange student 0 2 可以获取列表中的前三个元素。
//索引可以为负数,-1表示右边第一个元素,-2表示右边第二个 
//lrange student 0 -1获取所有元素
lset key index value //设置指定索引处的元素值
lindex key index //返回索引位置的元素值

五、哈希对象操作

哈希对象又称为散列对象,特点是键的value是一个个哈希字段对(field-value),其常见操作命令如下:

代码语言:javascript
复制
hset key field value //哈希键单个赋值
//如 hset student name wyl;hset student age 25
hget key field //获取哈希键指定field的value,如 hget student name
hmset key field1 value1 field2 value2//哈希键批量赋值
//如 hmset student name wyl age 25
hmget key field1 field2//批量获取哈希键指定field的值,
//hmget student name age
hgetall key //获取哈希键所有字段名及值 
hkeys key //获取哈希键所有字段名
hvals key //获取哈希键所有字段值
hexists key field //判断指定字段是否存在
hlen key //获取哈希键字段数目

六、集合对象操作

集合类型的value为元素的集合,每个元素都有唯一性,其常见操作命令如下:

代码语言:javascript
复制
sadd key member1 member2  //向集合添加元素如 sadd names wyl sjx 自动去重
srem key member1 member2  //向集合移除元素如 sadd names sjx
smembers key //获取集合所有的元素
sismember key member //判断集合是否包含某个元素
sdiff/sinter/sunion key1 key2 //获取集合的差集/交集/并集结果
spop key //弹出集合中的一个元素,集合中元素是无序的,所以是随机弹出一个

七、有序集合对象操作

有序集合和集合类似,value是元素的集合并且元素均唯一。不同之处是有序集合中每个元素都会关联一个double类型的分值,有序集合中的元素是按照分值升序排序的。其常见操作命令如下:

代码语言:javascript
复制
zadd key score1 member1 score2 member2 //向有序集合添加元素,member存在时
//更新分值,如zadd grade 100 sjx 99 wyl
zscore key member //获取指定元素分值
zincrby key increment member //增加指定元素分值如zadd grade -3 wyl
zrange key start stop //获取指定索引区间的元素(从小到大)类似lrange
zrevrange key start stop //获取指定索引区间的元素(从大到小)
zrangebyscore key min max //获取指定分值范围[min,max]的元素(从小到大)
zrecrangebyscore key min max //获取指定分值范围[min,max]的元素(从大到小)

八、对象共有操作

所有redis键均可以用的一些命令如下所示:

代码语言:javascript
复制
keys *  //列出所有的key
exists key  //检查某个key是否存在,存在返回1不存在返回0
del key   //删除某个key
type key  //获取key对应的value的类型

总结

本文对redis中几种常见的键类型做了简要介绍,并对每种类型的键的常见命令做了简要介绍。当然,redis中的命令复杂多样,这只是入门的冰山一角,其余命令就需要大家去探索了。学习了这些以后,你是否好奇redis源码中是如何实现这些不同的键类型及命令的呢?接下来的几节我会参考redis源码和《redis设计与实现》进行简要介绍,希望能帮助到您。我是小白,大家一起沟通交流进步~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 前言
  • 一、Redis是什么?
  • 二、Redis 对象简介
  • 三、字符串对象操作
  • 四、列表对象操作
  • 五、哈希对象操作
  • 六、集合对象操作
  • 七、有序集合对象操作
  • 八、对象共有操作
  • 总结
相关产品与服务
云数据库 Redis®
腾讯云数据库 Redis®(TencentDB for Redis®)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档