Redis学习笔记(一)— 基本命令和数据类型
程序员文章站
2022-04-10 21:06:15
MacOs环境 Redis基本命令 启动服务: 连接服务: 指定主机/IP 指定端口 指定密码 关闭服务:先 保存数据并关闭服务;再 退出服务 获取服务器信息 启动并连接服务之后,执行 或直接在shell中执行 参数指定要获取的某部分信息,例如 用来获取内存信息 Server:关于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
返回键对应的值,不存在则返回nil -
strlen
返回键对应的值的长度,不存在则返回0 -
append
向键的字符串值末尾追加字符串,返回新串长度 -
setrange
更新字符串值,偏移从0开始,返回新串长度setrange key 偏移值 newvalue
-
setnx
设置键值对,已存在则返回0不覆盖;成功返回1 -
mset
、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元素后面插入v2 -
lindenx <list> 3
获取list中索引为3的元素(0开始) -
lpushx
、rpushx
列表存在时才将元素插入 -
lpop
、rpop
左右两端删除,不存在返回nil -
ltrim <list> index1 index2
删除list中index1-index2之外的元素 -
lset <list> index value
将list索引为index的值设置为value -
blpop <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
获取集合中元素数量 - 集合运算
- 并集计算:
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
增加数量 -
pfcount
计算非重复总量
-
- geo
-
geoadd
增加经纬度坐标 -
geopos
获取指定成员坐标 -
georadius
获取指定范围内的坐标,中心点由输入的经纬度指定 -
georadiusbymember
获取指定范围内的坐标,中心点由geo集合中的成员指定 -
geodist
比较两个坐标点的距离
-
redis键管理
-
dbsize
获取redis中键的个数 -
keys *
、scan number
获取redis中的所有键 -
del
、unlink
删除redis中的键 -
exists
判断一个键是否存在 -
type
获取一个键的数据类型 -
rename
重命名一个键- 最佳实践:如果目标键已存在,则先unlink再重命名