1. string类型

string为最简单类型,一个key对应一个value

set mykey "wangzai"             ##设置key,第二次赋值会直接覆盖之前的
setnx mykey "wangzai" ## 如果mykey存在,则不改变,如果不存在,则创建赋值
get mykey ##获取key的值
setex key1 10 1 ##给key1设置过期时间为10s,值为1
mset key1 value1 key2 value2 ##设置多个key
mget key1 key2 ##获取多个key的值

2. list类型

list是一个链表结构,主要功能是push、pop以及获取一个范围的所有值等。

使用list结构,可以轻松实现最新消息排行,另一个应用是消息队列,可以利用list的push操作,将任务存在list中,然后工作线程再用pop操作将任务取出进行执行。(先进后出)

lpush list1 "wangzai"                   ##在列表中加入一个元素
lrange list1 0 -1 ##查看list1里面的所有元素
lpop list1 ##取出list1最新的元素
linsert list1 before "wangzai" "doubi" ##在值为"wangzai"的前面插入一个元素为"doubi"
lset list1 3 "hehe" ##把第五个元素修改为"hehe"
lindex list1 0 ##查看第一个元素
llen list1 ##查看列表中有多少元素

3. set类型

set是集合,对集合操作有添加删除元素,有对多个集合求交并差等操作。在微博应用中,可以将一个用户关注的所有人放在一个集合里,将所有粉丝放在一个集合里,因为redis为集合提供了求交集、并集、差集等操作,就可以方便的实现如共同关注、共同喜好等功能。

sadd set1 a b c d                      ## 创建集合set1并设置值
smembers set1 ## 查看集合set1的值
srem set1 a b ## 删除set1的值
spop set1 ## 随机取出一个元素并删除
sinter set1 set2 ## 交集
sinterstore set1 set2 set3 ## 将交集存储到set3
sunion set1 set2 ## 并集
sunionstore set1 set2 set3 ## 把并集存储到set3
sdiff set1 set2 ## 差集
sdiffstore set1 set2 set3 ## 把差集存储到set3
sismember set1 c ## 判断一个元素是否属于一个集合
srandmember set1 ## 随机取出一个元素,但不删除

4. sorted set类型

sorted set是有序集合,比set多了一个权重参数score,使得集合元素能够按score进行有序排列。

例如存储一个班级同学的成绩,其集合value可以是同学的学号,而score可以是其考试的得分,这样在数据插入集合的时候就进行了排序。

zadd zset1 1 a                  ## 增加一个集合zset1,score为1,member为a
zrange zset1 0 -1 ## 按score升序输出member
zrange zset1 0 -1 withscores ## 带上分值
zrem zset1 a ## 删除指定元素
zrank zset1 a ## 返回元素的索引值,索引从0开始
zrevrange zset1 0 -1 ## score降序输出member
zcard zset1 ## 返回集合中所有元素的个数
zcount zset1 1 10 ## 返回分值范围1-10的元素个数
zrangebyscore zset1 1 10 ## 返回分值范围1-10的元素
zremrangebyscore zset1 1 10 ## 删除分值范围1-10的元素

5. hash类型

把一些结构化的信息打包成hashmap,在客户端序列化后存储为一个字符串的值(一般为json格式),比如用户姓名、年龄、性别等

hset hash1 name wangzai                  ## 建立hash (hset name key value)
hget hash1 name ## 获取field值 HGET name key
hgetall hash1 ## 获取hash1中所有的key和value
hmset hash2 name wangzai age 26 job it ## 批量建立键值对
hmget hash2 name age job ## 批量获取field值
hdel hash2 job ## 删除指定field
hkeys hash2 ## 打印所有的key
hvals hash2 ## 打印所有的value
hlen hash2 ## 查看hash2有几个field

redis几种数据类型以及使用场景的更多相关文章

  1. 2 万字 + 20张图| 细说 Redis 九种数据类型和应用场景

    作者:小林coding 计算机八股文网(操作系统.计算机网络.计算机组成.MySQL.Redis):https://xiaolincoding.com 大家好,我是小林. 我们都知道 Redis 提供 ...

  2. redis五种数据类型的使用场景

    string 1.String 常用命令: 除了get.set.incr.decr mget等操作外,Redis还提供了下面一些操作: 获取字符串长度 往字符串append内容 设置和获取字符串的某一 ...

  3. redis 五种数据类型的使用场景

    String 1.String 常用命令: 除了get.set.incr.decr mget等操作外,Redis还提供了下面一些操作: 获取字符串长度 往字符串append内容 设置和获取字符串的某一 ...

  4. [转]redis 五种数据类型的使用场景

    FROM : http://blog.csdn.net/gaogaoshan/article/details/41039581#t5 String 1.String 常用命令: 除了get.set.i ...

  5. Redis五种数据类型及应用场景

    MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加 ...

  6. [redis]redis五种数据类型和应用场景

    一.String(字符串)字符串类型是redis最基础的数据结构,首先键是字符串类型,而且其他几种结构都是在字符串类型基础上构建的,所以字符串类型能为其他四种数据结构的学习尊定基础.字符串类型实际上可 ...

  7. Redis几种数据类型的应用场景(转)

    原文地址:https://blog.csdn.net/xiaoliuliu2050/article/details/73250708

  8. Redis的数据类型以及每种数据类型的使用场景

    人就是很奇怪的动物,很简单的问题往往大家都容易忽略,当我们在使用分布式缓存Redis的时候,一个最简单的问题Redis的数据类型以及每种数据类型的使用场景是什么? 是不是觉得这个问题很基础?我也这么觉 ...

  9. redis五种数据类型的使用(zz)

    redis五种数据类型的使用 redis五种数据类型的使用 (摘自:http://tech.it168.com/a2011/0818/1234/000001234478_all.shtml ) 1.S ...

随机推荐

  1. C语言中的按位移动及其简单引用

    C语言中的按位移动及其简单应用 在C语言中按位左移用”<<”表示,按位右移用”>>”表示. 按位左移和按位右移运算经常被用来替换乘二和除二运算,但是要注意,这两者之间并不完全等 ...

  2. Low Power之CPF/UPF

    1 CPF The Common Power Format is a standard promoted by the Low Power Coalition at Si2. CPF is also ...

  3. Mongodb同步数据到hive(二)

    Mongodb同步数据到hive(二) 1.            概述 上一篇文章主要介绍了mongodb-based,通过直连mongodb的方式进行数据映射来进行数据查询,但是那种方式会对线上的 ...

  4. Mysql汉字乱码的解决

    在安装Mysql时其实可能选择使用GBK来处理汉字,由于以前没使用,所以就按默认的英语处理.不过,也可以C:\Program Files\MySQL\MySQL Server 6.8安装路径下的my文 ...

  5. Python第三方库____jieba

    jieba是优秀的中文分词第三方库 中文文本需要通过分词获得单个词语 jieba是优秀的中文分词第三方库,需要额外安装  (pip install jieba) jieba库提供三种分词模式,最简单只 ...

  6. 【模板】 全排列 && 有重复元素的全排列

    全排列 #include<bits/stdc++.h> using namespace std; ]; void print (int n){ ;i<=n;i++) cout< ...

  7. IT农民的开发人员工具清单(2013年)

    IT行业日新月异,每天都不断变化着.作为一名混迹IT行业小有几个年头码农来说,不仅要时刻提高自身技术,也要不断更新自己开发工具.这些工具都是我吃饭的饭碗.饭碗旧了也是需要买个新的.转眼之间,已到201 ...

  8. mysql网页客户端工具

    mysql数据库的远程管理,云服务器数据库的管理监控等都可以使用 TreeSoft,  TreeSoft数据库管理系统使用JAVA开发,采用稳定通用的springMVC +JDBC架构,实现基于WEB ...

  9. 为什么说 LINQ 要胜过 SQL

    如果你还没有沉溺于 LINQ,就会想这有啥大惊小怪的.SQL 并没有坏掉,为什么还要对它进行修补呢? 为什么我们还需要另外一种查询语言呢? 流行的说法是 LINQ 同 C#(或者 VB)集成在了一起, ...

  10. js-权威指南学习笔记16

    1.元素的style属性可以用来设置样式,但是不适合用来查询样式(只能查询到内联样式). 2.CSS里的层叠指示了应用于文档中任何给定元素的样式规则是各个来源的层叠效果:Web浏览器的默认样式表.文档 ...