Redis教程

redis - 数据类型

本文主要是介绍redis - 数据类型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
 redis数据类型

 redis支持五种数据类型:string(字符串)、hash(哈希)、list(列表)、set(无序集合)、zset(sorted set:有序集合)

linux-redis执行:
docker exec -it redis-test /bin/bash
redis-cli
 1、string(字符串)
  •  介绍

    string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value

    string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象

    string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB

  •  结构展示

  •  实例
#设置指定key的值,没有时长 set key value
set key-name1 value-param1
#设置指定key的值,并将key的过期时间设为 seconds (以秒为单位) setex key seconds value
setex key-name2 10 value-param2
#设置指定key的值,并将key的过期时间设为 milliseconds (以秒为单位) psetex key milliseconds value
psetex key-name3 1000 value-param3
#获取指定key值 get key
get key-name1
#获取所有(一个或多个)给定key的值 mget key1 [key2...]
mget key-name1 key-name2
#将给定的key的 值设为value,并返回key的旧值(old value) getset key value
getset key-name1 value-param4
#删除一个key(del五种类型的数据都能删除) del key1 [key2...]
del key-name1
  •  应用场景
    •  存储token字符串
 2、hash(哈希)
  •  介绍

    Redis hash 是一个键值(key=>value)对集合。

    Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象

    Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

  •  结构展示

  •  实例
#同时将多个 field-value (域-值)对设置到哈希表 key 中。 hset key field1 value1 [field2 value2...]
hset employee no cd01 name gongyg
#同时将多个 field-value (域-值)对设置到哈希表 key 中。 hmset key field1 value1 [field2 value2]
hmset user id 1 name gumd
#获取存储在哈希表中指定字段的值。 hget key field
hget user id
#获取所有给定字段的值 hmget key field1 [field2...]
hmget user id name
#获取在哈希表中指定 key 的所有字段和值 hgetall key
hgetall user
#获取所有哈希表中的字段 hkeys key
hkeys user
#获取哈希表中字段的数量 hlen key
hlen user
#获取哈希表中所有值。hvals key
hvals user
  •  应用场景
    •  权限模块
 3、list(列表)
  •  介绍

    Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

    列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。

  •  结构展示

  •  实例
#在列表中添加一个或多个值【插入尾部】 rpush  key value1 [value2...]
rpush employee gyg gmd
#为已存在的列表添加值[必须是存在的key]【插入尾部】 rpushx key value
rpushx employee gxy gxh
#将一个值插入到已存在的列表头部[必须是存在的key] lpushx key value
lpushx orgunit org3 org4
#将一个或多个值插入到列表头部 lpush key1 value1 [value2...]
lpush orgunit org1 org2
#移出并获取列表的第一个元素 lpop key [count]
lpop orgunit
#移除列表的最后一个元素,返回值为移除的元素。 rpop key [count]
rpop orgunit
#移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。 blpop key1 [key2...] timeout
blpop orgunit 1
#移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。brpop key1 [key2...] timeout
brpop orgunit 1
#获取列表长度 llen key
llen orgunit
#通过索引获取列表中的元素 lindex key index
lindex orgunit 0
#获取列表指定范围内的元素 lrange key start stop
lrange orgunit 0 2
  •  应用场景
    •  redis消息队列
 4、set(无序集合)
  •  介绍

    Redis 的 Set 是 string 类型的无序集合

    集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

    集合成员是唯一的,这就意味着集合中不能出现重复的数据

    集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。

  •  结构展示

  •  实例
#向集合添加一个或多个成员 sadd key member1 [member2...]
sadd post post1 post2
#获取集合的成员数 scard key
scard post
#返回集合中的所有成员 smembers key
smembers post
#移除集合中一个或多个成员 srem key member1 [member2...]
srem post post1
  •  应用场景
    •  
 5、zset(sorted zset:有序集合)
  •  介绍

    Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员

    不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序

    有序集合的成员是唯一的,但分数(score)却可以重复

    集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

    集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

  •  结构展示

  •  实例
#向有序集合添加一个或多个成员,或者更新已存在成员的分数 zadd key score1 member1 [score2 member2...]
zadd trace 1 jd1 3 jd3 2 jd2 7 jd7 9 jd9 6 jd6 8 jd8 4 jd4 5 jd5
#获取有序集合的成员数 zcard key
zcard trace
#通过索引区间返回有序集合指定区间内的成员 zrange key start stop
zrange trace 0 2
#通过分数返回有序集合指定区间内的成员 zrangebyscore key min max
zrangebyscore trace 7 8
#返回有序集合中指定成员的索引 zrank key member
zrank trace jd4
#返回有序集中指定区间内的成员,通过索引,分数从高到低 zrevrange key start stop
zrevrange trace 1 4
#返回有序集中指定分数区间内的成员,分数从高到低排序 zrevrangebyscore key max min
zrevrangebyscore trace  6 4
#返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序 zrevrank  key member
zrevrank trace jd5
#返回有序集中,成员的分数值 zscore key member
zscore trace jd8
#移除有序集合中的一个或多个成员 zrem key member1 [member2...]
zrem trace  jd8
#移除有序集合中给定的分数区间的所有成员  zremangebyscore key start stop
zremrangebyscore trace 4 5
  •  应用场景
    •  
这篇关于redis - 数据类型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!