一、hash操作

数据结构:key:{k1:v1, k2:v2, k3:v3} 类似Python中的字典

如:info : {name: lina, age: 22, sex: F}

  • hset key k1 v1 设置/创建(字典)
  • hget key k1 获取key1 中 k1对应的值

批量设置获取

  • hmset key k2 v2 k3 v3 同时设置多个k-value
  • hmget key k1 k2 k3 同时获取多个值

获取所有keys

  • hkeys key

获取所有values

  • hvals key

查看键值下面的k个数

  • hlen key
127.0.0.1:6379> hset info name lina
(integer) 1
127.0.0.1:6379> hget info name
"lina"
127.0.0.1:6379> hmset info age 22 sex F
OK
127.0.0.1:6379> hmget info name age sex
1) "lina"
2) "22"
3) "F"
127.0.0.1:6379> hkeys info
1) "name"
2) "age"
3) "sex"
127.0.0.1:6379> hvals info
1) "lina"
2) "22"
3) "F"
127.0.0.1:6379> hlen info
(integer) 3
1.2 hash 下几个常用方法

删除key 下指定键值

  • hdel key k1 k2 k3 可删除一个或多个

判断key 下指定键值是否存在

  • hexists key field
127.0.0.1:6379> hdel info sex
(integer) 1
127.0.0.1:6379> hexists info sex
(integer) 0

在hash操作中一个key 能存200亿条数据,如果使用 hmget key 命令,那占用内存,和速度就太慢了

所以使用扫描,类是python 中生成器一样的方式:

  • hscan key cursor match pattern COUNT count

    :para key: 那个hash

    :para cursor: 游标,从哪开始扫描 一般从 0

    :para match: pattern 模糊匹配,正则表达

    :para COUNT: count匹配几个,输入数字就好
127.0.0.1:6379> hscan info 0 match na* count 1
1) "0"
2) 1) "name"
2) "lina"
二、列表操作

- lpush key value1 value2 value3 创建一个列表,并从左往右依次放入数据(FILO)
- rpush key value value2 同理上面,右往左放入(FIFO)

  • lrange key start stop 取列表中的值,从start 到stop 0 -1为取全部
  • llen key 查看列表长度
127.0.0.1:6379> lpush list 1 2 3
(integer) 3
127.0.0.1:6379> rpush list 1 2 3
(integer) 6
127.0.0.1:6379> lrange list 0 -1
1) "3"
2) "2"
3) "1"
4) "1"
5) "2"
6) "3"
127.0.0.1:6379> llen list
(integer) 6
2.2 往列表中插入元素,删除元素等
  • linsert key where refvalue value 往key中对应的refvalue标杆值的 where(before 和 after)前后后两个选项,插入数据value

    :para key: 对应列表

    :para where: before 或 after 意思在标杆值之前或之后

    :para refvale: 标杆值

    :para value: 将要插入的值

注意:如果有重复值,以找到的第一个为标杆

(integer) 6
127.0.0.1:6379> linsert list before 1 insert
(integer) 7
127.0.0.1:6379> lrange list 0 -1
1) "3"
2) "2"
3) "insert"
4) "1"
5) "1"
6) "2"

修改指定索引的值:

  • lset key index value

删除指定位置的值:

  • lrem key count value 参数count 为删除几个,value为 删谁

从列表左边获取一个值返回,并删除它

  • lpop key

获取指定索引的值

  • lindex key index

删除指定范围之外的所有元素

  • ltrim key start end
127.0.0.1:6379> lrange list 0 -1
1) "3"
2) "2"
3) "insert"
4) "1"
5) "1"
6) "2"
7) "3"
127.0.0.1:6379> lset list 1 'lina'
OK
127.0.0.1:6379> lrem list 2 1
(integer) 2
127.0.0.1:6379> lpop list
"3"
127.0.0.1:6379> lrange list 0 -1
1) "lina"
2) "insert"
3) "2"
4) "3"
127.0.0.1:6379> ltrim list 0 1
OK
127.0.0.1:6379> lrange list 0 -1
1) "lina"
2) "insert"
127.0.0.1:6379> lindex list 1
"insert"
2.3 几个不常用的命令,但很厉害

把列表一右边pop 添加到列表2 lpush 左边

  • rpoplpush key1 key2

左边删除一个数据,如果列表为空,就等待超时时间,在超时时间内,列表中出现了元素理解删除。像队列中的queue一般

  • blpop key timeout
三、set集合

创建一个集合:

  • sadd key value value value value

查看集合中的成员:

  • smembers key

返回集合中的元素个数:

  • scard key

差集:

  • sdiff key1 key2

将两个集合中的差集放入第三个集合

  • sdiffstore new_dest key1 key2

交集:

  • sinter key1 key2

并集:

  • sunion key1 key2

检查元素是否为集合中成员:

  • sismember key value

  • spop key

  • sscan key cursor match pattern

四、有序集合
  • zadd key 权重值 member 权重值2 member2 权重值3 member3

  • zrange key start end 可选参数为 withscores

  • zcount key min max 统计权重最小到最大

127.0.0.1:6379> zadd zz 1 shiqi 2 zengyue 3 yuan
(integer) 3
127.0.0.1:6379> zrange zz 0 -1
1) "shiqi"
2) "zengyue"
3) "yuan"
127.0.0.1:6379> zrange zz 0 -1 withscores
1) "shiqi"
2) "1"
3) "zengyue"
4) "2"
5) "yuan"
127.0.0.1:6379> zcount zz 1 2
(integer) 2
  • zrank key member 获取成员排名

  • zrem key member member2 删除指定成员

redis中的hash、列表、集合操作的更多相关文章

  1. 6、Redis中对Hash类型的操作命令

    写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- ------------ ...

  2. Redis中关于Hash键的一些问题

    Hash键存在的意义: 1.Hash键可以将信息凝聚在一起,而不是直接分散的存储在整个Redis中,这不仅方便了数据管理,还可以尽量避免一定的误操作: 2.避免键名冲突: 3.减少内存占用.(最重要的 ...

  3. Redis中的键值过期操作

    1.过期设置 Redis 中设置过期时间主要通过以下四种方式: expire key seconds:设置 key 在 n 秒后过期: pexpire key milliseconds:设置 key ...

  4. Redis中的事务(多命令)操作

    作为一个nosql数据库,事务是必要功能.但是redis我们是可以理解为它不支持事务操作的,因为它的特征完全不满足我们对事物的正常理解 ps:我不知道是谁一开始提出redis支持事务的,但是我更倾向于 ...

  5. 快速整透Redis中的压缩列表到底是个啥

    压缩列表简介 压缩列表(ziplist)是由一个连续内存组成的顺序型数据结构.一个压缩列表可以包含任意多个节点,每个节点上可以保存一个字节数组或整数值.它是Redis为了节省内存空间而开发的. 压缩列 ...

  6. redis 的使用 ( list列表类型操作)

    list 数据类型 列表类型 list 类型是一个双向操作 从链表的头部或者尾部添加删除元素 list 既可以用作栈 也可以用作队列 list 链表的类型应用场合: 获取最新的 10 个用户的信息 s ...

  7. Scala中的数组和集合操作

    package test /* 1.在scala集合中,Iterable是共同的Trait,Iterable要求继承者实现一些共同的方法,例如元素的遍历 * 2.Array是scala基础的数据结构, ...

  8. Redis中的key的通用操作

    1.看看所有的key 2.查看以mys开头的key 3.是否存在 4.删除 5.重命名. 6.设置过期时间与所剩的时间 如果没有设置,返回-1. 7.返回类型

  9. Springboot与ActiveMQ、Solr、Redis中分布式事物的初步探索

    Springboot与ActiveMQ.Solr.Redis中分布式事物的初步探索 解决的场景:事物中的异步问题,当要求数据库与solr服务器的最终一致时. 程序条件: 利用消息队列,当数据库添加成功 ...

随机推荐

  1. 自定义Chrome浏览器

    一.全局 自用备份,窗体透明化.要添加对应网站的窗体class到对应的位置 /*主页背景*/ /*https://images.cnblogs.com/cnblogs_com/AardWolf/135 ...

  2. Alpha阶段 - 博客链接合集

    Alpha阶段 - 博客链接合集 项目Github地址 安卓端(Stardust):https://github.com/StardustProject/Stardust 服务器端(Gravel):h ...

  3. 《生命》第三集:Mammals (哺乳动物)

    南极零下四十度的情况下,威德尔海豹能深潜到冰下捕食,并且教自己的小宝宝如何下水,看了这个才知道,海豹居然是哺乳动物,小海豹看着挺萌的. 长鼻鼩是一种很活跃的生物,而且会自己设计路线,建立迷宫,帮助自己 ...

  4. creo2.0安装方法和图文详解教程

    Creo2.0是由PTC公司2012年8月底推出的全新CAD设计软件包,整合了PTC公司的三个软件Pro/Engineer的参数化技术.CoCreate的直接建模技术和ProductView的三维可视 ...

  5. 【Teradata】配置PE和AMP(congfig和reconfig工具、vprocmanager)

    The Reconfiguration and Configuration utilities are used to define the AMPs and PEs that operate tog ...

  6. Kafka consumer group位移0ffset重设

    本文阐述如何使用Kafka自带的kafka-consumer-groups.sh脚本随意设置消费者组(consumer group)的位移.需要特别强调的是, 这是0.11.0.0版本提供的新功能且只 ...

  7. (转)Spring Boot 2 (三):Spring Boot 开源软件都有哪些?

    http://www.ityouknow.com/springboot/2018/03/05/spring-boot-open-source.html 2016年 Spring Boot 还没有被广泛 ...

  8. 【ZJOI2017】仙人掌

    [ZJOI2017]仙人掌 参考博客:https://www.cnblogs.com/wfj2048/p/6636028.html 我们先求出\(dfs\)树(就是\(dfs\)一遍),然后问题就变成 ...

  9. python 之常用模块

    一 认识模块 二 常用模块    (1)re模块    (2)collections模块 一  认识模块     (1)什么是模块      (2)模块的导入和使用 (1)模块是:一个模块就是一个包含 ...

  10. Python之Requests库的7个主要方法

    方法 说明 requests.request() 构造一个请求,支撑一下各方法的基础方法 requests.get() 获取HTML网页的主要方法 requests.head() 获取网页头信息的方法 ...