(03)redis的5种数据类型及其基本操作

  redis支持5种数据类型:【字符串:String】、【散列(哈希):Hash】、【列表:List】、【集合:Set】、【有序集合:SortedSet(zset)】,下面分别介绍5中数据类型的常用命令以及应用场景。

  1、String类型

  (01)赋值:set key value

  (02)取值:get key

  (03)先获取旧值、再设置新值:getset key value

  (04)多个赋值:mset key1 value1 key2 value2 key3 value3 ...

  (05)多个取值:mget key1 key2 key3 ...

  (06)删除key:del key

  (07)使值递增1:incr

  (08)使值递增n:incrby key n

  (09)使值递减1:decr

  (10)使值递减n:decrby key n

  (11)使值尾部追加:append key value

  (12)获取值的长度:strlen key

  应用场景:分布式数据库利用自增做主键,第一可以防止主键重复,第二也可以规定某个数据库的id范围,从第几开始。

  2、Hash类型

  (01)赋值:hset key field value

  (02)取值:hget key field

  (03)多个字段赋值:hmset key field1 value1 field2 value2 field3 value3 ...

  (04)多个字段取值:hmget key field1 field2 field3 ...

  (05)存在则修改、不存在则插入:hsetnx key field value

  (06)获取key的所有字段:hgetall key

  (07)删除key的某个字段:hdel key field

  (08)使key某个字段的值递增n:hincrby key field n

  (09)判断key的某个字段是否存在:hexists key field

  (10)获取某个key的所有字段名:hkeys key

  (11)获取某个key的所有字段值:hvals key

  (12)删除key:del key

  应用场景:设置商品信息,假如用String类型保存商品信息,修改的话要解析json、修改后再封装json保存。但是Hash类型则可以根据key的字段修改值。

  3、List类型 (redis中使用的双向链表)

  (01)向左端增加元素:lpush key value1 value2 value3 ...

  (02)向右端增加元素:rpush key value1 value2 value3 ...

  (03)查看下标在startindex 和 stopindex之间的元素:lrange key startindex stopindex,stopindex = -1 代表右边全部的

  (04)从左边返回并删除元素:lpop key

  (05)从右边返回并删除元素:rpop key

  (06)获取列表中元素的个数:llen key

  (07)根据值删除元素:lrem key count value(删除前count个值为value的元素)count>0从左边开始删,count<0右边开始,count=0删除全部。

  (08)根据下标值查找元素:lindex  key index

  (09)给指定的下标设置元素值:lset key index value

  (10)根据下标保留指定元素,删除其余的:ltrim key startindex stopindex

  (11)从左向右查找,在指定元素的左(before)右(after)插入元素:linsert key before|after findValue targetValue。

  (12)将元素从一个列表转移到另一个列表:rpoplpush fromkey tokey(又端弹出,左端压入)

  应用场景:存放商品的评论列表,key是商品编号,value是商品评论的json串,一个商品可以有好多评论。

  4、Set类型

  (01)添加元素:sadd key value1 value2 value3 value4 ...

  (02)删除元素:srem key value1 value2 value3 value4 ...

  (03)获取集合中所有元素:smembers key

  (04)判断元素是否在集合中:sismember key value

  (05)获取集合差集(属于A,不属于B的元素):sdiff keyA keyB

  (06)获取集合交集(属于A,也属于B的元素):sinter keyA keyB

  (07)获取集合并集(属于A、B中的全部元素):sunion keyA keyB

  (08)获取集合中元素的个数:scard key

  (09)从集合中随机弹出一个元素:spop key

  应用场景:根据集合与列表的区别,要求无序、不重复的可以用集合。

  5、SortedSet(zset)类型

  有序集合是在集合的基础上每个元素关联了一个分数,可以提供与分数有关的操作,如获取分数最高、最低的前n个元素,根据分数范围获取元素等。

  (01)添加元素:zadd key score value score2 value2 score3 value3 ...(如果元素存在,会用新分数替换旧分数)

  (02)获取指定元素的分数:zscore key value

  (03)删除指定元素:zrem key value

  (04)按照分数从小到大,返回下标范围之间的元素:zrange key startindex stopindex

  (05)按照分数从大到小,返回下标范围之间的元素:zrevrange key startindex stopindex

  (06)按照分数从小到大,返回下标范围之间的元素,并获取分数:zrange key startindex stopindex withscores

  (07)按照分数从大到小,返回下标范围之间的元素,并获取分数:zrevrange key startindex stopindex withscores

  (08)获取指定分数范围的元素:zrangebyscore key minScore maxScore [withscores]

  (09)获取指定分数范围的元素,从第offset个开始,总共取count个:zrangebyscore key minScore maxScore limit offset count [withscores]

  (10)增加某个元素的分数:zincrby key addScore value(给value增加addScore分)

  (11)获得集合中元素的数量:zcard key

  (12)获得指定分数范围为元素数量:zcount key minScore maxScore

  (13)按照排名范围删除元素:zremrangebyrank key startIndex stopIndex

  (14)按照分数范围删除元素:zremrangebyscore key minScore maxScore

  (15)从小到大获取元素的排名:zrank key value

  (16)从大到小获取元素的排名:zrevrank key value

  应用场景:商品销售排行榜,score是销售量、value是商品id

原文地址:https://www.cnblogs.com/javasl/p/12099041.html

时间: 2024-10-09 11:30:59

(03)redis的5种数据类型及其基本操作的相关文章

redis的五种数据类型

redis的五种数据类型 redis客户端建立 ./redis-cli -h 192.168.1.22 -p 6380 --raw 1.String 应用场景: 统计网站访问数量.当前在线人数.微博数.粉丝数等,全局递增ID等 . 常用命令: SET key value GET key MSET key1 value1 [key2 value2] MGET key1 key2 INCR key DECR key SETNX key value  #只有key 不存在时,才设置key的值 2.Ha

轻松搞定高并发:详解Redis的五种数据类型及应用场景分析!

一.Redis基本概念介绍和特性 1.1 Redis基本概念介绍 1.Redis是远程的,有客户端和服务端,我们一般说的是服务端: 2.Redis是基于内存的,所以比基于硬盘的MySQL要快很多,但非常吃内存 3.Redis是非关系型数据库.本质上也是数据库,但MySQL关系型数据库存储时必须定义数据词典,而Redis则不需要. 1.2 Redis 和 Memcached比较 Redis数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的

Redis支持5种数据类型

Redis目前支持5种数据类型,分别是 String(字符串) List(列表) Hash(字典) Set(集合) Sorted Set(有序集合) Redis数据类型 1.字符串类型 SET key value                   设置key=value GET key                         或者键key对应的值 GETRANGE key start end          得到字符串的子字符串存放在一个键 GETSET key value    

Python操作Redis的5种数据类型

1.连接redis(两种方式) 1 # decode_responses=True: 解决获取的值类型是bytes字节问题 2 r = redis.Redis(host='localhost', port='6379', db=0, decode_responses=True) 1 pool = redis.ConnectionPool(host='localhost', port=6379, db=0, decode_responses=True) 2 r = redis.Redis(conn

Redis的几种数据类型

package com; import static org.junit.Assert.fail; import java.util.HashMap; import java.util.Map; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.Pipeline; /** * REDIS的几种数据结构 * @author lenovo * */ public class Demo

Redis的6种数据类型

Redis支持六种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)和基数(HyperLogLog). String(字符串) string 是 redis 最基本的类型,一个 key 对应一个 value. string 类型是二进制安全的.意思是 redis 的 string 可以包含任何数据.比如jpg图片或者序列化的对象. string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 5

redis的入门篇---五种数据类型及基本操作

查看所有的key keys * 清空所有的key flushall 检查key是否存在 exists key 设置已存在的key的时长 expire key 10 //设置key为10s 查看key还剩多少时长 ttl key //-1是永久 -2是不存在 查看key的类型 type key 随机取出一个key randomkey 重命名key rename key newkey //如果key存在 直接覆盖 renamenx key newkey //如果key存在 则失败 返回0 设置一定时

[Redis]Redis的五种数据类型与键值/服务器相关命令

-------------------------------------------------------------------------------------- String(字符串):最简单的数据类型. set age 18 ( set age 18 ex 5 ) # 设置过期时间5秒 setex age 5 18   # 效果同上, 使用 ttl age 可以查看剩余有效时间 psetex age 5000 18  # 同上,只是以毫秒为单位设置key的过期时间 ( set ag

redis的5种数据类型