Redis-第五章节-8种数据类型
目录
- 一、Redis对key的操作
- 二、五种数据类型
- String类型
- List(集合)
- Set(集合)
- Hash(哈希)
- Zset(有序集合)
- 三、三种特殊数据类型
- geospatial(地理位置)
- hyperloglog(优点:占用内存小)
- Bitmap(位图)
一、Redis对key的操作
- 判断key是否存在:exists key_name
- 设置key的过期时间:expire key_name [过期的时间值](number类型)
- 查看key的过期时间:ttl key_name
- 获取所有的key: keys *
二、五种数据类型
String(字符串)
字符串类型操作:
- 设置值:set key_name value
- 获取值:get key_name
- 追加字符串,如果当前的key不存在就会创建一个新的key: append key_name value
- 获取字符串长度:strlen key_name
- 截取字符串:getrange key_name [start index] [end index]
- 指定的字符串覆盖给定key所储存的字符串值,覆盖的位置从偏移量 offset(数字类型) 开始:setrange key_name offset value
- 为指定的key设置值及其过期时间,如果key已经存在,setex命令将会替换旧的值: setex key_name [expiration time] value
- 先获取值再设置值:getset key_name value
数字类型操作:
- number数字类型自增1:incr key_name
- number数字类型减1:decr key_name
- 增加指定的值:incrby key_name [具体的值]number类型
- 减少指定的值:decrby key_name key_name [具体的值]number类型
批量操作:
- 批量设置值:mset key_name1 value1 key_name2 value2 key_name3 value3
- 批量获取值:
- 方式1: mget key_name1 key_name2 key_name3
- 方式2:msetnx key_name1 key_name2 key_name3 //这个是原子性操作,要么全部成功,要么全部失败。
List(集合)
- 设置值:
- 左边:lpush key_name value
- 右边:rpush key_name value
- 获取值:
- 左边:
- lrange key_name [start index] [end index]
- lrange key_name 0 -1 获取所有的元素
- 左边:
- 移除数据:
- 左边:lprop key_name
- 右边:rprop key_name
- 根据参数count的值,移除列表中与参数value相等的元素:
- lrem key_name [count] value
- count > 0:从表头开始向表尾搜索,移除与value相等的元素,数量为count。
- count < 0:从表尾开始向表头搜索,移除与value相等的元素,数量为count的绝对值。
- count = 0: 移除表中所有与value相等的值。
- lrem key_name [count] value
- 根据索引获取元素:lindex key_name [index]
- 获取集合的长度:llen key_name
- 替换列表中指定下标的值,如果不存在就会报错:lset key_name [index] value
- 在列表的元素前或者后插入元素。当指定元素不存在于列表中时,不执行任何操作。当列表不存在时,被视为空列表,不执行任何操作。如果 key 不是列表类型,返回一个错误: linsert key_name [before] || [after] oldvalue newvalue
Set(集合)
- 设置值:sadd key_name value
- 获取值:smembers key_name
- 随机从集合中抽取数据:srandmember key_name
- 随机从集合中抽取指定个数的数据:srandmemer key_name [number]
- 移除元素:srem key_name value
- 用于移除集合中的指定key的一个或多个随机元素,移除后会返回移除的元素: spop key_name
- 判断值是否在集合中:sismember key_name value
- 获取集合中的元素的个数:scard key_name
- 集合之间操作:
- 将值移动到另一个集合中:smove oldlist newlist value
- 差集:sidff oldlist newlist
- 交集:sinter oldlist newlist
- 并集:sunion oldlist newlist
Hash(哈希)
- 设置值:
- 方式1:hset key_name filed1 value
- 方式2:hsetnx key_name filed1 value //如果不存在则可以设置
- 方式3:hsetnx key_name filed1 value //如果存在不能设置
- 获取值:hget key_name filed1
- 获取所有值:hgetall key_name
- 删除集合中某一个字段的值:hdel key_name filed1
- 获取集合中的元素的个数:hlen key_name
- 判断key是否存在:hexists key_name
- 获取所有的filed: hkeys key_name
- 获取所有的值:hvals key_name
- 自增:hincrby key_name filed1 1
- 自减:decrby key_name filed1 1
- 批量操作:
- 设置值:hmset key_name filed1 value1 filed2 value2
- 获取值:hmget key_name filed1 filed2
Zset(有序集合)
- 设置值(number:排序的标识位,这个可以重复):zadd key_name [number] value
- 设置多个值(number:排序的标识位,这个可以重复): zadd key_name [number] value2 [number] value3
- 获取值:zrange key_name 0 -1
- 排序:zrangebysocre key_name -inf +inf
- 移除元素:zrem key_name value
- 获取集合中元素的数量:zcard key_name
- 获取指定区间的成员的数量:zcount key_name [start index] [end index]
三、三种特殊数据类型
geospatial(地理位置)
- 添加城市的位置:geoadd china:city 116.40 39.90 beijing
- 获取指定城市的经纬度:geopos china:city beijing chongqing
- 获取两人之间的距离:geodist china:city beijing shanghai km
- 获取指定半径范围之内的坐标:georadius china:city 110 30 1000 km
- 根据元素寻找元素:georeadiusbymember china:city beijing 1000 km
hyperloglog(优点:占用内存小)
- 设置值:PFadd key_name value1 value2 value3 value4 value5 value6
- 获取数量:PFCOUNT key_name
- 合并两个集合:PFMERGE 新集合 集合2 集合3
Bitmap(位图)
- 记录周一到周五的打卡:setbit sign 0 1 // 0是周几 1 是否打卡
- 查看某一天是否打卡:gitbit sign 3
- 统计打卡的天数:bitcout sign
Redis-第五章节-8种数据类型的更多相关文章
- redis五种数据类型的使用(zz)
redis五种数据类型的使用 redis五种数据类型的使用 (摘自:http://tech.it168.com/a2011/0818/1234/000001234478_all.shtml ) 1.S ...
- redis五种数据类型的使用
redis五种数据类型的使用 redis五种数据类型的使用 (摘自:http://tech.it168.com/a2011/0818/1234/000001234478_all.shtml ) 1.S ...
- redis五种数据类型的使用场景
string 1.String 常用命令: 除了get.set.incr.decr mget等操作外,Redis还提供了下面一些操作: 获取字符串长度 往字符串append内容 设置和获取字符串的某一 ...
- Redis五种数据类型-设置key的过期时间
1.redis命令客户端 [root@localhost bin]# ./redis-cli 127.0.0.1:6379> #是否运行着 127.0.0.1:6379> ping PON ...
- Redis安装及五种数据类型
redis是非关系型数据库,也叫内存数据库.数据是键值对的形式,通过key查找value 安装Radis:6379 sudo apt-get update sudo apt-get install r ...
- Redis: Redis支持五种数据类型
ylbtech-Redis: Redis支持五种数据类型 Redis支持五种数据类型:string(字符串) ,hash(哈希),list(列表),set(集合)及zset(sorted set:有序 ...
- Redis支持的五种数据类型
redis支持的五种数据类型: 1.string(字符串) 2.hash(哈希) Redis hash 是一个键值(key=>value)对集合. Redis hash是一个string类型的f ...
- Redis学习笔记(3)—— 五种数据类型&keys的通用操作
一.Redis数据结构介绍 redis是一种高级的key-value的存储系统,其中的key是字符串类型,尽可能满足如下几点: 1)key不要太长,最好不要操作1024个字节,这不仅会消耗内存还会降低 ...
- redis的五种基本数据类型
redis基本数据类型 redis一共分为5中基本数据类型:String,Hash,List,Set,ZSet 第一种String String类型是包含很多种类型的特殊类型,并且是二进制安全的.比如 ...
随机推荐
- 使用gitlab-runner本地验证.gitlab-ci.yml
背景 在gitlab上配置新项目的CI的时候,需要编写项目的 .gitlab-ci.yml 文件. 每次修改 .gitlab-ci.yml 文件之后都要执行git push让GitLab去构建来验证当 ...
- Azure Service Bus(二)在NET Core 控制台中如何操作 Service Bus Queue
一,引言 上一篇讲到关于 Azure ServiceBus 的一些概念,讲到 Azure Service Bus(服务总线),其实也叫 "云消息服务",是微软在Azure 上提供的 ...
- python多元回归于调用excel文件
import xlrd from numpy.linalg import inv import numpy as np data = xlrd.open_workbook(u'C:\\Users\\x ...
- PIX
[开启]后,如图: [新建]:如图中设定: Program: 你要准备监测的应用程序路径 [点击]:Start Experiment 如图,会出现一个新窗口(你运行的应用程序窗口) [点击F12](确 ...
- 根据租户id获取部门树状结构有父子结构的数据list
/** * 根据租户id获取部门树状结构 * @param tenantId * @return */ @GetMapping("getDeptTreeList") public ...
- redis系列:分布式锁
redis系列:分布式锁 1 介绍 这篇博文讲介绍如何一步步构建一个基于Redis的分布式锁.会从最原始的版本开始,然后根据问题进行调整,最后完成一个较为合理的分布式锁. 本篇文章会将分布式锁的实现分 ...
- 01 . Go之从零实现Web框架(框架雏形, 上下文Context,路由)
设计一个框架 大部分时候,我们需要实现一个 Web 应用,第一反应是应该使用哪个框架.不同的框架设计理念和提供的功能有很大的差别.比如 Python 语言的 django和flask,前者大而全,后者 ...
- 入门oj 5499: 讲话模式
Description 每个人说话都有口头禅,现给出一个字符串,请求出其中出现次数最多的单词(不区分大小写). Input 输入一行,长度小于等于1048576的字符串输入至少包含一个字母或数字 Ou ...
- Java并发包源码学习系列:CLH同步队列及同步资源获取与释放
目录 本篇学习目标 CLH队列的结构 资源获取 入队Node addWaiter(Node mode) 不断尝试Node enq(final Node node) boolean acquireQue ...
- Bata冲刺——第一天
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE1 这个作业要求在哪里 https://edu.cnblogs.com/campus/fz ...