Redis学习笔记(一)— 基本命令和数据类型
MacOs环境
Redis基本命令
- 启动服务:
redis-server
- 连接服务:
redis-cli
-h
指定主机/IP-p
指定端口-a
指定密码
- 关闭服务:先
shutdown
保存数据并关闭服务;再quit
退出服务 - 获取服务器信息
- 启动并连接服务之后,执行
info
- 或直接在shell中执行
redis-cli info
- 参数指定要获取的某部分信息,例如
info memory
用来获取内存信息- Server:关于Redis服务器的基本信息
- Clients:客户端连接的状态和指标
- Memory:大致的内存消耗指标
- Persistence:数据持久化相关的状态和指标
- Stats:总体统计数据
- Replication:主从复制相关的状态和指标
- CPU:CPU使用情况
- Cluster:Redis Cluster的状态
- Keyspace:数据库相关的统计数据
- 启动并连接服务之后,执行
Redis数据类型
- 字符串
set
设置键值对,已存在则覆盖,成功返回OKSET <key> <value>
get
返回键对应的值,不存在则返回nilstrlen
返回键对应的值的长度,不存在则返回0append
向键的字符串值末尾追加字符串,返回新串长度setrange
更新字符串值,偏移从0开始,返回新串长度setrange key 偏移值 newValue
setnx
设置键值对,已存在则返回0不覆盖;成功返回1mset
、mget
一次性设置/获取多个键值对MSET key value [key value...]
object encoding <key>
查看字符串编码方式- int
- embstr 长度小于等于44字节的字符串
- raw 长度大于44字节的字符串
- 列表
lpush
左端插入rpush
右端插入
-lrange <list> 0 -1
获取所有list的值- 列表索引可以按照从左到右指定为
0 ~ N-1
,也可以按照从右到左指定为-1 ~ -N
- 列表索引可以按照从左到右指定为
linsert <list> after v1 v2
在list列表的v1元素后面插入v2lindenx <list> 3
获取list中索引为3的元素(0开始)lpushx
、rpushx
列表存在时才将元素插入lpop
、rpop
左右两端删除,不存在返回nilltrim <list> index1 index2
删除list中index1-index2之外的元素lset <list> index value
将list索引为index的值设置为valueblpop <list> time
、brpop <list> time
若list中无数据,阻塞time秒,0表示持续阻塞
- 哈希
hmset <hashName> field name [field name...]
设置哈希表hmget <hashName> field field...
从一个哈希表中获取多个字段对应的值hget <hashName> field
从一个哈希表中获取某个字段对应的值hexists <hashName> field
测试一个哈希中是否存在某个字段hgetall
获取一个hash的所有字段值(过大的哈希容易造成阻塞)hscan key cursor [MATCH pattern] [COUNT number]
增量地迭代遍历元素cursor
表示游标,迭代开始位置MATCH
匹配满足制定Glob表达式的字段COUNT
指定每次迭代的返回元素个数,默认是10- 返回的新游标为0时表示遍历完成
hset
修改现有字段的值或增加新的字段hdel
删除一个hash中的某个字段hsetnx
字段不存在时设置字段
- 集合
- 唯一、无序
sadd set member [member...]
给集合添加元素sismember set member
检测member是否在set中srem
从集合中删除元素scard
获取集合中元素数量smembers
列出集合所有元素(数据量大会导致阻塞)- 集合运算
- 并集计算:
sunion
、sunionstore
- 交集计算:
sinter
、sinterstore
- 差集计算:
sdiff
、sdiffstore
- 不带store直接返回操作结果;反之将结果存到一个指定的键中
- 并集计算:
- 有序集合
zadd
添加集合元素zrevrange
获取集合排序zincrby
对集合中某个元素增加权重分数zrevrank
查看元素排名zscore
查看元素权重zunionstore sumName 2 set1 set2 weights 1 2
合并两个集合排名- 第一个2指合并的集合数目
- weights后面的数字指集合权重的倍数,set1的权重值乘1,set2的权重值乘2
- HyperLogLog
pfadd
增加数量pfmerge
合并pfcount
计算非重复总量
- Geo
geoadd
增加经纬度坐标geopos
获取指定成员坐标georadius
获取指定范围内的坐标,中心点由输入的经纬度指定georadiusbymember
获取指定范围内的坐标,中心点由Geo集合中的成员指定geodist
比较两个坐标点的距离
Redis键管理
dbsize
获取Redis中键的个数keys *
、scan number
获取Redis中的所有键del
、unlink
删除Redis中的键exists
判断一个键是否存在type
获取一个键的数据类型rename
重命名一个键- 最佳实践:如果目标键已存在,则先unlink再重命名
Redis学习笔记(一)— 基本命令和数据类型的更多相关文章
- Redis学习笔记(五)- 数据类型之set类型
Redis 的set是string类型的无序集合.set元素最大可以包含(2的32次方-1)个元素.set的是通过hash table实现的,所以添加,删除,查找的复杂度都是O(1).hash tab ...
- Redis学习笔记(四)-数据类型之list类型
redis的list类型其实就是一个每个子元素都是string类型的双向链表.所以[lr]push和[lr]pop命令的算法时间复杂度都是O(1).另外list会记录链表的长度.所以llen操作也是O ...
- Redis学习笔记(三)-数据类型之string类型
string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象.从内部实现来看其实string可以看作byte ...
- Redis学习笔记(二)Redis支持的5种数据类型的总结之String和Hash
引言 在Redis学习笔记(一)中我们已经会安装并且简单使用Redis了,接下来我们一起来学习下Redis支持的5大数据类型. 简介 Redis是REmote DIctionary Server(远程 ...
- Redis学习笔记(二) Redis 数据类型
Redis 支持五种数据类型:string(字符串).list(列表).hash(哈希).set(集合)和 zset(有序集合),接下来我们讲解分别讲解一下这五种类型的的使用. String(字符串) ...
- Redis学习笔记(三)Redis支持的5种数据类型的总结
继续Redis学习笔记(二)来说说剩余的三种数据类型. 三.列表类型(List) 1.介绍 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的一段片段.列表类型内部是 ...
- Redis学习笔记~目录
回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...
- Redis学习笔记4-Redis配置详解
在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...
- Redis学习笔记(二)-key相关命令【转载】
转自 Redis学习笔记(二)-key相关命令 - 点解 - 博客园http://www.cnblogs.com/leny/p/5638764.html Redis支持的各种数据类型包括string, ...
- Redis学习笔记(1)——Redis简介
一.Redis是什么? Remote Dictionary Server(Redis) 是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value ...
随机推荐
- WinDbg常用命令系列---!teb
!teb 简介 !teb扩展显示线程环境块(teb)中信息的格式化视图. 使用形式 !teb [TEB-Address] 参数 TEB-Address 要检查其TEB的线程的十六进制地址.(这不是从线 ...
- [RN] React Native 实现 类似QQ 登陆页面
[RN] React Native 实现 类似QQ 登陆页面 一.主页index.js 项目目录下index.js /** * @format */ import {AppRegistry} from ...
- 62、Spark Streaming:容错机制以及事务语义
一. 容错机制 1.背景 要理解Spark Streaming提供的容错机制,先回忆一下Spark RDD的基础容错语义: 1.RDD,Ressilient Distributed Dataset,是 ...
- updateprimarykey 和updateprimaryKeySelective
updateprimarykey 会对左右的字段都进行更新,updateprimaryKeySelective 只会对不为null的字段进行更新..所以在填表的web项目需要注意这个两个方法的选择,因 ...
- css3学习之--transition属性(过渡)
一.理解transition属性 W3C标准中对CSS3的transition是这样描述的: CSS的transition允许CSS的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标单击,获得焦 ...
- Phpoffice 已经弃用
Package phpoffice/phpexcel is abandoned, you should avoid using it. Use phpoffice/phpspreadsheet i ...
- linux学习(4):linux常用命令(50个)
linux常用命令(50个) 1. find 基本语法参数如下: find [PATH] [option] [action] # 与时间有关的参数: -mtime n : n为数字,意思为在n天之前的 ...
- IDEA将指定package(指定文件)打成jar包
写在前面 真的是好记性不如烂笔头 需求 将项目中包名为org的package打成jar包 步骤 1.选择Artifacts>绿色+号>JAR>Empty name自定义, 我这里命名 ...
- 如何在CentOS上升级php5.4至5.6?
如何在CentOS上升级php5.4至5.6? 2017-01-10技术运维PHPApacheCentOSLinux 由于CentOS的默认的php安装源版本都是5.4以下的,如果你的项目对php版本 ...
- MySQL索引知识点及面试常问题
索引的功能 索引可以大幅增加数据库的查询的性能,在实际业务场景中,或多或少都会使用到. 但是索引是有如下 2 个代价的: 需要额外的磁盘空间来保存索引 对于插入.更新.删除等操作由于更新索引会增加额外 ...