新手初学Redis之基础知识命令
笔者最初接触Redis是因为了解了一些nosql方面的知识,觉得nosql是一个很有意思的方面。像其中的mongodb,redis等等。当初也没有深入的去了解Redis,直到自己前段时间在写一个web项目的时候需要用到缓存来进行性能优化我才仔细的来学习Redis。下面我就来说说我自己在学习Redis过程中的一些心得。
Redis是一个nosql数据库,它采用字典结构以键值对的形式将数据全部存储在内存中所以它读写的速度很快,因此很多项目用Redis做缓存用,我也是基于这个想法来学习Redis的。 Redis支持的数据类型分别是字符串(string)、散列(hash)、列表(list)、集合(set)、有序集合(sorted set)这五种。接下来我将仔细介绍下这几种数据结构的用法和对应的命令。
字符串类型:字符串类型是Redis中最基本的数据类型,是其他四种数据类型的基础。它能存储任何形式的字符串(二进制数据、Json对象、图片等),它的最大数据容量是512MB。
常用命令:
set key value //赋值
get key //取值
keys * //查看所有的键
exists key //判断某个键是否存在
del key //删除一个键
type key //获取键的类型
incr/decr key //给键增加/减少一
incrby/decrby key increment/decrement //给键增加/减少一个整数
incrbyfloat key increment //增加浮点数
strlen key //返回键的长度
mset/mget //同时设置或者获取多个值
散列类型:散列类型的键值是一种字典结构,存储了字段和字段值的映射。但是字段值只能是字符串,不支持其他数据类型(Redis的其他数据类型也都不支持嵌套,只能是字符串。)。
常用命令:
hset key field value //赋值。不区分插入和更新操作,当键不存在是会自动建立。
hget key field //取值
hgetall key //取出所有的值
hexists key field //判断字段是否存在
hsetnx key field value //字段不存在时便赋值
hincrby key field increment //增加指定的数字,没有自增
hdel key field //删除一个或者多个字段,返回被删除的个数
hkeys key //只获取字段名
hvals key //只获取字段值
hlen key //只获取字段数量
列表类型:列表是个有序的字符串,向两端添加或者删除元素。它是使用双向链表实现的。
常用命令:
lpush/rpush list value //向左/右增加元素
lpop/rpop list //从左/右弹出元素
llen list //获列表的元素个数
lrange list start stop //获得列表片段(左边索引为0,如果为负则从右边开始) lrange key -1 0 则为获取所有的元素
lrem list count value //删除列表中前count个值为value的元素
rpoplpush oldlist newlist //将原列表的值放入新列表
集合类型:集合中的元素都是不同的,而且没有顺序。它可以求交集、并集、差集。
常用命令:
sadd set member //增加一个元素给集合(没有则创建)
srem set member //删除一个或多个元素
smembers set //返回集合中所有的元素
sismember set member //判断元素是否存在于集合中
sdiff setA setB //求差集
sinter setA setB //求交集
sunion setA setB //求并集
sdiffstore destination setA setB //将求到的差集结果保存在destination中
srandmember set num //随机获取一个或多个元素(看后面加的参数)
spop set //从集合中随机弹出一个元素
有序集合:和集合相比给每个元素都关联了个分数。我们除了可以进行集合的操作外,还可以获取分数最高或者最低的几个元素。
常用命令:
zadd key score member //加入元素和对应分数,支持整数和双精度浮点,如果存在则修改。其中+inf和-inf代表正负无穷大
zscore key member //获得元素的分数
zrange/zrevrange key start stop //按分数从顺序/逆序排序
zrangebyscore key min (max //返回min和max之间的数左括号代表不包含
zincrby key increment member //给元素增加值
zcount key min max //获取指定范围元素的个数
zcard key //获取集合中元素的数量
zrem key member //删除元素
zremrangebyrank key start stop //按排名范围删除元素
zremrangebyscore key min max //删除分数范围值
zrank key member //元素按分数大小排名
zrevrank key member //从大到小排名
结语:个人学习总结有遗漏错误的地方还希望大家留言斧正,多多交流一起学习。
新手初学Redis之基础知识命令的更多相关文章
- 2、Redis的基础知识
写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- 主要内容包括: red ...
- Redis:基础知识及其常用数据类型和关键字
Redis: Redis是什么: REmote DIctionary Server(远程字典服务器) 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(Key-Value)分布式内存数 ...
- 初学python必备基础知识
一,编程语言介绍 1.机器语言:直接用二进制编程,直接控制硬件,需要掌握硬件的操作细节 优点:执行效率高 缺点: 开发效率低 2.汇编语言:用英文标签取代二进制指令去编写程序,直接控制硬件,需 ...
- 分布式数据库对比评测(Es,mongodb,redis)基础知识篇
前言 我建议大家看下这个,否则后面你不知道我在说什么. 1.ES数据库相关概念 啥是Es,说白了就是支持文档搜索的分布式数据库,专门方便搜索的,GITHUB京东现在都在用. 1.ES的数据库存放在哪里 ...
- redis的基础知识
select切换数据库 remoteSelf:0>select 0 "OK" dbsize查看当前数据库的key数量 remoteSelf:0>dbsize " ...
- redis基础知识思维导图
看到一张redis的基础知识思维导图,比较清晰, 但是没有标明来源,希望知道的给个地址,我也好说明来源 图大小有1M多.在博客上看比较模糊,可以先下载下来查看,或者在浏览器新标签中打开图片查看,就比较 ...
- Redis学习---基础学习[all]
什么是NoSQL型数据库 NoSQL数据库---NoSQL数据库的分类 Redis学习---NoSQL和SQL的区别及使用场景 Redis学习---负载均衡的原理.分类.实现架构,以及使用场景 什么是 ...
- 系统和帮助-Linux基础知识
iOS镜像: 硬盘分区:留出一些空间;实在不成,可安装完成以后,新增一块虚拟硬盘; 终端:terminal 用户界面: GUI:图形界面 GNome KDE CLI: bash,zsh,sh,csh, ...
- Redis基础知识补充及持久化、备份介绍(二)--技术流ken
Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)--技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis ...
随机推荐
- SQL面试题——查询课程
题目: 成绩表(Grade),包含字段:GradeID(Int,自增), SNO(int, 学号), CNO(int, 课程号), Score(float,分数) 查询每门课程的平均(最高/最低)分及 ...
- POJ 1696 Space Ant
极角排序 每次选择一个最外围的没选过的点,选择的时候需要利用极角排序进行选择 #include<cstdio> #include<cstring> #include<ve ...
- jQuery中$.get、$.post、$.getJSON和$.ajax的用法
以下是本人原创,如若转载和使用请注明转载地址.本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!博客地址 一.jQuery中调用ajax的4种方法:$.get.$.post.$ge ...
- Servlet实现文件上传(简单)(一)
1..使用到的jar包,为apache的一个子项目 此commons-fileupload-1.2.2需要以下commons-io-2.0.1的支持 2.页面展示fileUpload.jsp ...
- 一、Hbase的安装
一.Hbase配置 这个是我从网上找的一个版本,网上说配置成功. 先决条件: (1)hadoop的版本与hbase的版本要对应,主要是hadoop目录下的hadoop-core-1.0.4.jar的版 ...
- 【亲测】Python:解决方案:Python Version 2.7 required, which was not found in the registry
好久不更新随笔了,今天因为数据可视化作业,想抓取一些人人网好友关系数据,于是开始尝试python,用到numpy模块,安装的时候提示: 'Python Version 2.7 required, wh ...
- ADXL345加速度传感器驱动
ADXL345 是 ADI 公司的一款 3 轴.数字输出的加速度传感器.ADXL345 是 ADI 公司推 出的基于 iMEMS 技术的 3 轴.数字输出加速度传感器.该加速度传感器的特点有: ...
- Mac OS10.11更新ruby,gem,安装cocoapods
1.装cocoapods,ruby版本忒低->开始更新ruby->开始更新gem,这是一条不归路啊同志们,各种permission denied,各种路径不存在,各种路径没有读写权限,各种 ...
- Tsinsen-A1490 osu! 【数学期望】
问题描述 osu!是一个基于<押忍!战斗!应援团><精英节拍特工><太鼓达人>等各种音乐游戏做成的一款独特的PC版音乐游戏.游戏中,玩家需要根据音乐的节奏,通过鼠标 ...
- Node.js timer的优化故事
前几天nodejs发布了新版本4.0,其中涉及到一个更新比较多的模块,那就是下面要介绍的timer模块. timers: Improved timer performance from porting ...