redis 学习笔记

数据类型数据结构(及对应源码文件)常用命令命令备注

基本命令

DEL删除
DUMP序列化
EXISTS是否存在
EXPIRE

EXPIRE key seconds,设置过期时间 

EXPIREATEXPIREAT key timestamp 设置过期时间
PEXIPIRE设置过期时间,毫秒
KEYS查找所有符合给定模式( pattern)的 key
MOVE将当前数据库的 key 移动到给定的数据库 db 当中
PERSIST 移除 key 的过期时间,key 将持久保持
PTTL以毫秒为单位返回 key 的剩余的过期时间
TTL以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)
RANDOMKEY 从当前数据库中随机返回一个 key 
RENAME修改 key 的名称
RENAMENX仅当 newkey 不存在时,将 key 改名为 newkey 
TYPE 返回 key 所储存的值的类型
list双向链表,adlist.c 和 adlist.hLPUSH插入到list头部,list不存在则创建
RPUSH插入到list尾部,list不存在则创建
LPUSHX向已知list头部插入数据
RPUSHX已知list尾部插入数据
LPOP取list第一个数据
RPOP取list最后一个数据
LLENlist的长度
LRANGE按下标,key 的列表里指定范围内的元素
LREM 从存于 key 的列表里移除前 count 次出现的值为 value 的元素
LINDEX返回列表里的元素的索引 index 存储在 key 里面
LSET 设置 index 位置的list元素的值为 value
LTRIM修剪(trim)一个已存在的 list,这样 list 就会只包含指定范围的指定元素。
LINSERT 把 value 插入存于 key 的列表中在基准值 pivot 的前面或后面
RPOPLPUSH 原子性地返回并移除存储在 source 的列表的最后一个元素(列表尾部元素), 并把该元素放入存储在 destination 的列表的第一个元素位置(列表头部)
BLPOP BLPOP 是阻塞式列表的弹出原语。 它是命令 LPOP 的阻塞版本,这是因为当给定列表内没有任何元素可供弹出的时候, 连接将被 BLPOP 命令阻塞
BRPOP BRPOP 是一个阻塞的列表弹出原语。 它是 RPOP 的阻塞版本,因为这个命令会在给定list无法弹出任何元素的时候阻塞连接。 
BRPOPLPUSH BRPOPLPUSH 是 RPOPLPUSH 的阻塞版本。
动态字符串sds.c 和 sds.h,bitops.cSET设置指定 key 的值
GET获取指定 key 的值
GETRANGE返回 key 中字符串值的子字符
GETSET将给定 key 的值设为 value ,并返回 key 的旧值(old value)
GETBITGETBIT key offset对 key 所储存的字符串值,获取指定偏移量上的位(bit)
MGET获取所有(一个或多个)给定 key 的值
SETBITSETBIT key offset value对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
SETEXSETEX key seconds value
将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。
SETNXSETNX key value 只有在 key 不存在时设置 key 的值
SETRANGE 用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。
STRLEN返回 key 所储存的字符串值的长度
MSET同时设置一个或多个 key-value 对
MSETNX同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在
PSETEX这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间
INCR将 key 中储存的数字值增一
INCRBY将 key 所储存的值加上给定的增量值(increment)
INCRBYFLOAT将 key 所储存的值加上给定的浮点增量值(increment)
DECR将 key 中储存的数字值减一
DECRBY key 所储存的值减去给定的减量值(decrement)
BITCOUNTBITCOUNT key [start] [end]:BITCOUNT key 用来获取 key 的值中二进制是 1 的个数。
BITOPBITOP operation resultKey key1 key2。operation 是位运算的操作,有 AND,OR,XOR,NOT。resultKey 是把运算结构存储在这个 key 中,key1 和 key2 是参与运算的 key,参与运算的 key 可以指定多个
APPEND如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。

HASH

dict.c 和 dict.hHDEL删除一个或多个哈希表字段
HEXISTS查看哈希表 key 中,指定的字段是否存在
HGET获取存储在哈希表中指定字段的值
HGETALL获取在哈希表中指定 key 的所有字段和值
HINCRBY为哈希表 key 中的指定字段的整数值加上增量 increment
HINCRBYFLOAT为哈希表 key 中的指定字段的浮点数值加上增量 increment 
HKEYS获取所有哈希表中的字段
HLEN获取哈希表中字段的数量
HMGET获取所有给定字段的值
HMSET同时将多个 field-value (域-值)对设置到哈希表 key 中
HSET将哈希表 key 中的字段 field 的值设为 value 
HSETNX只有在字段 field 不存在时,设置哈希表字段的值
HVALS获取哈希表中所有值
HSCAN

HSCAN key cursor [MATCH pattern] [COUNT count] 

迭代哈希表中的键值对

SETt_set.c 和 server.hSADD向集合添加一个或多个成员
SCARD获取集合的成员数
SDIFF返回给定所有集合的差集
SDIFFSTORESDIFFSTORE destination key1 [key2] 返回给定所有集合的差集并存储在 destination 中
SINTER返回给定所有集合的交集
SINTERSTORE返回给定所有集合的交集并存储在 destination 中
SISMEMBER判断 member 元素是否是集合 key 的成员
SMEMBERS返回集合中的所有成员
SMOVE将 member 元素从 source 集合移动到 destination 集合
SPOP移除并返回集合中的一个随机元素
SRANDMEMBER返回集合中一个或多个随机数
SREM移除集合中一个或多个成员
SUNION返回所有给定集合的并集
SUNIONSTORE所有给定集合的并集存储在 destination 集合中
SSCANSSCAN key cursor [MATCH pattern] [COUNT count] 迭代集合中的元素
有序集合跳表,t_zset.c 和 server.hZADD向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZCARD获取有序集合的成员数
ZCOUNT计算在有序集合中指定区间分数的成员数
ZINCRBY有序集合中对指定成员的分数加上增量 increment
ZINTERSTORE计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中
ZLEXCOUNT在有序集合中计算指定字典区间内成员数量
ZRANGE通过索引区间返回有序集合成指定区间内的成员
ZRANGEBYLEX通过字典区间返回有序集合的成员
ZRANGEBYSCORE通过分数返回有序集合指定区间内的成员
ZRANK返回有序集合中指定成员的索引
ZREM移除有序集合中的一个或多个成员
ZREMRANGEBYLEX移除有序集合中给定的字典区间的所有成员
ZREMRANGEBYRANK移除有序集合中给定的排名区间的所有成员
ZREMRANGEBYSCORE移除有序集合中给定的分数区间的所有成员
ZREVRANGE返回有序集中指定区间内的成员,通过索引,分数从高到底
ZREVRANGEBYSCORE返回有序集中指定分数区间内的成员,分数从高到低排序
ZREVRANK返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
ZSCORE返回有序集中,成员的分数值
ZUNIONSTORE计算给定的一个或多个有序集的并集,并存储在新的 key 中
ZSCANZSCAN key cursor [MATCH pattern] [COUNT count] 迭代有序集合中的元素(包括元素成员和元素分值)
hyperlogloghyperloglog.cPFADDPFADD key element [element ...]  添加指定元素到 HyperLogLog 中
PFCOUNTPFCOUNT key [key ...]  返回给定 HyperLogLog 的基数估算值。
PFMERGEPFMERGE destkey sourcekey [sourcekey ...]  将多个 HyperLogLog 合并为一个 HyperLogLog
redis 发布订阅PSUBSCRIBE

PSUBSCRIBE pattern [pattern ...] 

订阅一个或多个符合给定模式的频道。

PUBSUB

PUBSUB subcommand [argument [argument ...]] 

查看订阅与发布系统状态

PUBLISHPUBLISH channel message  将信息发送到指定的频道
PUNSUBSCRIBEPUNSUBSCRIBE [pattern [pattern ...]] 退订所有给定模式的频道
SUBSCRIBESUBSCRIBE channel [channel ...]  订阅给定的一个或多个频道的信息
UNSUBSCRIBEUNSUBSCRIBE [channel [channel ...]] 指退订给定的频道
事务DISCARD取消事务,放弃执行事务块内的所有命令
EXEC 执行所有事务块内的命令
MULTI标记一个事务块的开始
UNWATCH取消 WATCH 命令对所有 key 的监视
WATCH监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断
脚本EVAL执行 Lua 脚本
EVALSHA执行 Lua 脚本
SCRIPT EXIST查看指定的脚本是否已经被保存在缓存当中
SCRIPT FLUSH从脚本缓存中移除所有脚本
SCRIPT KILL杀死当前正在运行的 Lua 脚本
SCRIPT LOAD将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本
连接AUTH验证密码是否正确
ECHO打印字符串
PING查看服务是否运行
QUIT关闭当前连接
SELECT切换到指定的数据库
服务器BGREWRITEAOF 异步执行一个 AOF(AppendOnly File) 文件重写操作
BGSAVE 在后台异步保存当前数据库的数据到磁盘
CLIENT KILL [ip:port] [ID client-id]关闭客户端连接
CLIENT LIST获取连接到服务器的客户端连接列表
CLIENT GETNAME 获取连接的名称
CLIENT PAUSE timeout 在指定时间内终止运行来自客户端的命令
CLIENT SETNAME connection-name 设置当前连接的名称
CLUSTER SLOTS 获取集群节点的映射数组
COMMAND获取 Redis 命令详情数组
COMMAND COUNT 获取 Redis 命令总数
COMMAND GETKEYS 获取给定命令的所有键
TIME 返回当前服务器时间
COMMAND INFO command-name [command-name ...] 获取指定 Redis 命令描述的数组
CONFIG GET parameter 获取指定配置参数的值
CONFIG REWRITE 对启动 Redis 服务器时所指定的 redis.conf 配置文件进行改写
CONFIG SET parameter value 修改 redis 配置参数,无需重启
CONFIG RESETSTAT 重置 INFO 命令中的某些统计数据
DBSIZE 返回当前数据库的 key 的数量
DEBUG OBJECT key获取 key 的调试信息
DEBUG SEGFAULT 让 Redis 服务崩溃
FLUSHALL 删除所有数据库的所有key
FLUSHDB删除当前数据库的所有key
INFO [section] 获取 Redis 服务器的各种信息和统计数值
LASTSAVE返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示
MONITOR实时打印出 Redis 服务器接收到的命令,调试用
ROLE返回主从实例所属的角色
SAVE同步保存数据到硬盘
SHUTDOWN异步保存数据到硬盘,并关闭服务器
SLAVEOF host port 将当前服务器转变为指定服务器的从属服务器(slave server)
SLOWLOG subcommand [argument] 管理 redis 的慢日志
SYNC 用于复制功能(replication)的内部命令
geogeo.h 和 geo.cgeoadd(纬度、经度、名称)三元组
geodist计算两个元素之间的距离
geopos获取集合中任意元素的经纬度坐标,可以一次获取多个
geohash获取元素经纬度坐标经过geohash算法生成的base32编码值
georadiusbymember 查询指定元素附近的其它元素

georadius

根据坐标点查找附近位置的元素

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分布式锁的实现方法,参考

https://www.cnblogs.com/0201zcr/p/5942748.html

lua脚本实现的锁 

https://www.cnblogs.com/number7/p/8320259.html

hyperloglog的实现原理

https://www.cnblogs.com/linguanh/p/10460421.html

https://www.jianshu.com/p/55defda6dcd2

https://www.cnblogs.com/Jace06/p/8316809.html

稀疏存储结构

https://cloud.tencent.com/developer/article/1349691

用redis统计PV,UV, IP的用法

https://blog.csdn.net/zuozhiyoulaisam/article/details/93895833

我们为什么要用redis

http://ifeve.com/%E6%88%91%E4%BB%AC%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E7%94%A8redis/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值