新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT百科 > 数据库 > Redis

Redis学习之数据操作

时间:2019-12-04 10:30:39  来源:  作者:

key 操作

  • 删除 key:del key
  • 批量删除key:redis-cli -a(密码)keys “QXJ_*”| xargs redis-cli -a(密码)del
  • 查看所有的 key(一次性遍历整个数据库,生产上慎重使用):keys [pattern]
  • 利用 cursor 分页查询记录(渐进的遍历整个数据库,生产上推荐):scan cursor [MATCH pattern] [COUNT count]
scan 0 match '*order*' count 20
  • 序列化给定 key,并返回被序列化的值:dump key
  • 检查给定 key 是否存在:exists key
  • 为 key 设置过期时间(秒)/ (时间戳)/(毫秒):expire key seconds / expireat key timestamp / pexpire key milliseconds
  • 移除 key 的过期时间,key 将持久保存:persist key
  • 以毫秒为单位返回 key 的剩余过期时间:pttl key
  • 返回 key 所存储的值得类型:type key
  • 返回从当前数据库中随机选择的一个key:randomkey
  • 原子的重命名一个key :rename oldkey newkey

Redis 的超时处理机制?

  • 当 client 主动访问 key 会先对 key 进行超时判断,过时的 key 会立刻删除。
  • master 的后台,会每秒做 10 次如下操作 — 随机选取 100 个key校验是否过期,如果有25个以上的 key 过期了,立刻额外随机选取下 100 个key(不计算在10次之内)。

Redis 的中文显示问题?

在 redis-cli 中使用中文时,必须打开 --raw 选项,才能正常显示中文。

/usr/bin/redis-cli --raw

string 操作

  • 保存 key 和 value(nx 表示 key 不存在的时候才赋值,xx 相反):set key value [ex 秒数] / [px 毫秒数] [nx] /[xx]
  • 仅当 key 不存在的时候才赋值(常用来做分布式锁):setnx key value
  • 原子的设置 key 的值,并返回 key 的旧值(配合 setnx 实现分布式锁):getset key value
  • 批量设置 key、value 的值:mset key1 value1 … keyN valueN
  • 获取/批量获取 value 值:get key / mget key1….keyN
  • 对 key 的值做加1或减1操作:incr/decr key
  • 对 key 的值指定加/减某个数值:incrby/decrby key integer、incrbyfloat key floatnumber
  • 对 key 的 value 追加值:Append key value
  • 返回截取过的 key 的字符串值,注意并不修改 key 的值:substr key start end
  • 位操作(位置相反,右边表示低位,offset 过大,则会在中间填充0):setbit key offset value、getbit key offset

list 操作

  • 向列表左边插入元素:lpush key value [value …]
  • 从列表右边移出元素:rpop key
  • 在 key 对应 list 的特定位置之前或之后添加字符串元素:linsert key before|after pivot value
linsert mylist before "world" "there"
  • 返回 key 对应 list 的长度:llen key
  • 通过索引获取列表中的元素:lindex key index
  • 获取列表指定范围内的元素(-1 表示最后一个元素):lrange key start end
  • 保留指定区间内元素:ltrim key start end
  • 设置list中指定下标的元素值:lset key index value
  • 从列表右边移出元素的阻塞方式,采取先到先服务原则,timeout 未获取到则返回 nil:brpop key [key …] timeout

set 操作

  • 添加元素:sadd key value
  • 移除元素,成功返回1:srem key
  • 移除集合中的一个随机元素并返回:spop key
  • 返回集合中一个或多个随机数:srandmember key count
  • 根据 key 获得集合中的所有成员:smembers key
  • 判断 member 是否在 set 中:sismember key member
  • 获取集合的成员数:scard key
  • 把 member 从 source 集合转移到 des 集合:smove source des member
  • 返回给定集合的差集:sdiff key1 key2
  • 返回给定集合的并集:sunion key1 key2
  • 返回给定集合的交集:sinter key1 key2…keyN

zset 操作

  • 添加元素到集合:zadd key score member
  • 删除元素:zrem key member
  • 返回集合中的元素数量:zcard key
  • 返回指定元素对应的 score:zscore key element
  • 增加对应 member 的 score 值,保持有序,返回更新后的 score 值:zincrby key incr member
  • 返回指定元素在集合中的排名,顺序/逆序:zrank/zrevrank key member
  • 返回有序集合中,指定范围内的元素:zrange key start end (zrange key 0 -1)
  • 返回有序集合中,指定分数区间内的元素(可以指定 inf 为无穷,withscores 表示需要返回分数):zrangebyscore key min max (zrangebyscore key -inf inf withscores)
  • 评分的聚合:zunionstore destination numkeys key [key …] [weights weight] [aggregate sum | min | max]
zunionstore award 2 visits votes weights 1 2 aggregate sum
  • destination:表示生成的目标集合
  • numkeys:需要聚合的集合数量,对应后面的 key [key …] 数量和
  • weights:乘法因子,默认为 1,每个给定有序集的所有成员的 score 值在传递给聚合函数(aggregation function)之前都要先乘以该因子
  • aggregate:集合函数,有 sum、min、max

hash 操作

  • 存储/批量存储 hash 值:hset key field value / hmset key field1 value1 field2 value2
  • 获取/批量获取 hash 值:hget key field / hmget key filed1….fieldN
  • 得到 hash 中的所有值:hgetall key
  • 测试指定 field 是否存在:hexists key field
  • 删除一个或多个哈希字段:hdel key field1 [field2]
  • 返回 hash 的所有 field:hkeys key
  • 返回指定 hash 的 field 数量:hlen key

HyperLogLog 操作

HyperLogLog 主要解决大数据应用中的非精确计数(可能多也可能少,但是会在一个合理的范围) 操作,它可以接受多个元素作为输入,并给出输入元素的基数估算值,基数指的是集合中不同元素的数量。

HyperLogLog 的优点是,即使输入元素的数量或者体积非常非常大,计算基数所需的空间总是固定的、并且是很小的。在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基数。关于数据误差,在一个大小为 12k 的 key 所存储的 hyperloglog 集合基数计算的误差约是 0.81%。

因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。

HyperLogLog 的这个数据结构可以非常省内存的去统计各种计数,比如注册 IP 数、每日访问 IP 数、页面实时UV 、在线用户数等。

  • 将元素添加至 HyperLogLog :pfadd key element [element …]
  • 返回给定 HyperLogLog 的基数估算值(多个 HyperLogLog 会先对 HyperLogLog 作并集处理):pfcount key [key …]
  • 合并多个 HyperLogLog:pfmerge destkey sourcekey [sourcekey …]


Tags:Redis   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
key 操作 删除 key:del key 批量删除key:redis-cli -a(密码)keys “QXJ_*”| xargs redis-cli -a(密码)del 查看所有的 key(一次性遍历整个数据库,生产上慎重使用):keys [pattern] 利...【详细内容】
2019-12-04   Redis  点击:(0)  评论:(0)  加入收藏
Redis 是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将 Redis 中的数据以数据或命令的形式从内存保存到本地磁盘。当下次 Redis 重启时,利用...【详细内容】
2019-12-02   Redis  点击:(1)  评论:(0)  加入收藏
我先说下结果。我现在还不敢放线上去测,这是本地测的数据,我4g内存的电脑本地开redis,一次都没写完过全部数据,都是写一半后不是redis挂就是测试程序挂。可以肯定的是总记录数是以千万为单位的。O(log(n千万/range))的时间...【详细内容】
2019-12-02   Redis  点击:(0)  评论:(0)  加入收藏
慢查询,大家可能已经接触到了MySQL的慢查询。我们配置一个时间,如果查询时间超过了我们设置的时间,我们就认为这是一个慢查询. 如上图所示:Redis客户端一条命令执行分4个步骤: 发...【详细内容】
2019-11-29   Redis  点击:(7)  评论:(0)  加入收藏
ip192.168.1.111 主192.168.1.112 从192.168.1.113 从安装redis 安装依赖yum install gcc gcc-c++ -y 下载redis-4.0.11.tar.gzcd /usr/localwget http://download.redis.i...【详细内容】
2019-11-28   Redis  点击:(5)  评论:(0)  加入收藏
常用的 SQL 数据库的数据都是存在磁盘中的,虽然在数据库底层也做了对应的缓存来减少数据库的 IO 压力。 图片来自 Pexels由于数据库的缓存一般是针对查询的内容,而且粒度也...【详细内容】
2019-11-27   Redis  点击:(5)  评论:(0)  加入收藏
概念:Redis是用C语言开发的一个开源的高性能键值对数据库。特征: 数据间没有必然的联系 内部采用单线程机制进行工作 高性能 多数据类型支持字符串类型 String列表类型 List散...【详细内容】
2019-11-27   Redis  点击:(5)  评论:(0)  加入收藏
本文实例讲述了php+redis实现注册、删除、编辑、分页、登录、关注等功能。分享给大家供大家参考,具体如下:主要界面 连接redisredis.php<?php //实例化 $redis = new Redis();...【详细内容】
2019-11-26   Redis  点击:(6)  评论:(0)  加入收藏
客户端的连接的建立Redis通过在TCP端口上进行监听,或者Unix socket(如果启用)的方式来接受客户端的连接。当一个新的客户端连接被接受执行以下操作: 当Redis使用非阻塞I/O复用,...【详细内容】
2019-11-25   Redis  点击:(6)  评论:(0)  加入收藏
最近忙于业务开发、交接和游戏,加上碰上了不定时出现的犹豫期和困惑期,荒废学业了一段时间。天冷了,要重新拾起开始下阶段的学习了。之前接触到的一些数据搜索项目,涉及到请求模...【详细内容】
2019-11-22   Redis  点击:(10)  评论:(0)  加入收藏
MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。...【详细内容】
2019-11-22   Redis  点击:(17)  评论:(0)  加入收藏
一、项目介绍Rotter是禧云自主研发的跨机房Redis双向同步解决方案(下文简称为方案),具有零侵入、高吞吐量、低延时、高堆积能力等特点。当前版本支持Sentinel模式和单点模式Red...【详细内容】
2019-11-20   Redis  点击:(8)  评论:(0)  加入收藏
适合的读者:初级程序员前言虽然现在大多数后端服务都是部署在linux服务器上的,代码开发工作很多人是在windows下进行的,由于redis官方没有windows下的版本,所以大家第一次使用的...【详细内容】
2019-11-15   Redis  点击:(10)  评论:(0)  加入收藏
Redis以内存数据库而闻名。但是,某些系统将它用作消息队列管理工具。Pub/Sub 和 RPOPLPUSH 是用于实现这样一个系统的两组命令。在这篇文章中,我将分享一些关于这两个命令集的...【详细内容】
2019-11-14   Redis  点击:(7)  评论:(0)  加入收藏
压缩列表ziplist的zset内部有两种存储结构,一种是ziplist,另一种是跳跃列表skiplist。为了彻底理解zset的内部结构,我们就再来介绍一下skiplist。skiplist介绍顾名思义,skiplist...【详细内容】
2019-11-13   Redis  点击:(13)  评论:(0)  加入收藏
Jedis api 在线网址:http://tool.oschina.net/uploads/apidocs/redis/clients/jedis/Jedis.htmlredisson 官网地址:https://redisson.org/redisson git项目地址:https://githu...【详细内容】
2019-11-11   Redis  点击:(52)  评论:(0)  加入收藏
一、Redis简介Redis是一个开源的使用ANSI C语言编写的Key-Value数据库,是一种应用非常广泛的NoSQL数据库,性能极高,拥有出色的读写速度,适用性非常的广。因此也被广泛应用在中大...【详细内容】
2019-11-01   Redis  点击:(15)  评论:(0)  加入收藏
1、系统架构 2、服务器情况 服务器 1:nginx(80)、redis(6379) 服务器 2:tomcat1(8080)、tomcat2(8080) 服务器 3:mysql(3306)3、Nginx 主要配置http { ...... upstream tomcat { ip_hash;...【详细内容】
2019-10-30   Redis  点击:(15)  评论:(0)  加入收藏
redis在现在的系统中用的越来越多了,分布式锁,缓存,附近的人,排行榜,简易版的消息队列,发布订阅等。redis中有很多命令,每个命令又有很多参数,如果让我们全部记住很不现实,今天就推...【详细内容】
2019-10-30   Redis  点击:(14)  评论:(0)  加入收藏
Redis支持主从复制功能,用户可以通过执行slaveof命令或者在配置文件中设置slaveof选项来开启复制功能。例如,现在有两台服务器—127.0.0.1:6379和127.0.0.1:7000,向服务器...【详细内容】
2019-10-28   Redis  点击:(14)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条