redis数据类型及常用命令

一.redis数据类型

Redis的五大数据类型

1.string(字符串)

  String(字符串)

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

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

  string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

2.hash(哈希,类似java里的Map) 

  Hash(哈希)
  Redis hash 是一个键值对集合。
  Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。

  类似Java里面的Map<String,Object>

3.list(列表)

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

4.set(集合)

  Set(集合)
  Redis的Set是string类型的无序集合。它是通过HashTable实现实现的,

5.zset(sorted set:有序集合)

  zset(sorted set:有序集合)
  Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
  不同的是每个元素都会关联一个double类型的分数。
  redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。(比如游戏中划分名称,杀了60个怪的一个名称,70个怪的一个名称,80的一个名称,90的一个名称,100的一个名称,那玩家可能就会被分成不同的区间从而达到分组的效果)

二.基本命令操作

keys

1.keys

2. exists key的名字,判断某个key是否存在

3. move key db   --->当前库就没有了,被移除了

4. expire key 秒钟:为给定的key设置过期时间

5. ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期

6. type key 查看你的key是什么类型

字符串(string)

特点:单值单value

1. set/get/del/append/strlen

2.Incr/decr/incrby/decrby,一定要是数字才能进行加减

3. getrange/setrange

  getrange:获取指定区间范围内的值,类似between......and的关系
  从零到负一表示全部
  setrange设置指定区间范围内的值,格式是setrange key值 具体值

4. setex(set with expire)键秒值/setnx(set if not exist)

  setex:设置带过期时间的key,动态设置。
  setex 键 秒值 真实值
  setnx:只有在 key 不存在时设置 key 的值。

5. mset/mget/msetnx

  mset:同时设置一个或多个 key-value 对。
  mget:获取所有(一个或多个)给定 key 的值。
  msetnx:同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。

6. getset(先get再set)

  getset:将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
  简单一句话,先get然后立即set

列表(List)

特点:单值多value

1. lpush/rpush/lrange

2. lpop/rpop

3. lindex,按照索引下标获得元素(从上到下)

  通过索引获取列表中的元素 lindex key index

4. llen

5. lrem key 删N个value

* 从left往right删除2个值等于v1的元素,返回的值为实际删除的数量
 *  LREM list3 0 值,表示删除全部给定的值。零个就是全部值

6. ltrim key 开始index 结束index,截取指定范围的值后再赋值给key

  ltrim:截取指定索引区间的元素,格式是ltrim list的key 起始索引 结束索引

7. rpoplpush 源列表 目的列表

  移除列表的最后一个元素,并将该元素添加到另一个列表并返回

8. lset key index value

9. linsert key  before/after 值1 值2

列表性能总结:

  它是一个字符串链表,left、right都可以插入添加;
  如果键不存在,创建新的链表;
  如果键已存在,新增内容;
  如果值全移除,对应的键也就消失了。
  链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。

集合(set)

特点:单值多value

1. sadd/smembers/sismember

2. scard,获取集合里面的元素个数

  获取集合里面的元素个数

3. srem key value 删除集合中元素

4. srandmember key 某个整数(随机出几个数)

  *   从set集合里面随机取出2个
   *   如果超过最大数量就全部取出,
   *   如果写的值是负数,比如-3 ,表示需要取出3个,但是可能会有重复值。

5. spop key 随机出栈

6. smove key1 key2   在key1里某个值

  作用是将key1里的某个值赋给key2

7. 数学集合类

1.差集:sdiff, 交集:sinter, 并集:sunion

哈希(Hash)

特点:KV模式不变,但V是一个键值对

1.  hset/hget/hmset/hmget/hgetall/hdel

2.hlen, hexists key 在key里面的某个值的key

3. hkeys/hvals

4. hincrby/hincrbyfloat

5. hsetnx

  不存在赋值,存在了无效。

有序集合(Zset) 

  在set基础上,加一个score值。
  之前set是k1 v1 v2 v3,
  现在zset是k1 score1 v1 score2 v2

1. zadd/zrange

  无序集合可以用在游戏中的给玩家分段的操作中,下面设置的数值60,70,80为分段标准,对应的v1,v2,v3就是一系列的元素value

2. zrem key 某score下对应的value值,作用是删除元素

  删除元素,格式是zrem zset的key 项的值,项的值可以是多个

  zrem key score某个对应值,可以是多个值

3. zcard/zcount key score区间/zrank key values值,作用是获得下标值/zscore key 对应值,获得分数 

  zcard :获取集合中元素个数

  zcount :获取分数区间内元素个数,zcount key 开始分数区间 结束分数区间

  zrank: 获取value在zset中的下标位置

  zscore:按照值获得对应的分数

4. zrevrank key values值,作用是逆序获得下标值

  正序、逆序获得下标索引值

5. zrevrange

6. zrevrangebyscore  key 结束score 开始score

  zrevrangebyscore zset1 90 60 withscores    分数是反着来的

原文地址:https://www.cnblogs.com/Dominic-Ji/p/9185078.html

时间: 2024-10-08 06:11:27

redis数据类型及常用命令的相关文章

redis数据类型及常用命令介绍(图文实例)

上图中即为redis中5种基本数据类型,在没接触过redis之前,听过最多相关的字眼就是键值对key-value之类,立马让我想到了HashMap.在HashMap中,key和value的的数据类型都可以指定,value也可以是HashMap类型.而在这里,redis的基本数据类型是针对的value,有这5种. 文中所用测试记录环境在Linux下,命令操作在SSH客户端下,这里使用的是Xshell 5,个人使用感觉很方便,同一系列的Xftp 5用于远程文件上传操作也很不错.如有需要,可直接进入官

Redis介绍及常用命令

Redis介绍及常用命令 Redis是一个key-value存储系统.和Memcached类似,但是解决了断电后数据完全丢失的情况,而且她支持更多无化的value类型,除了和string外,还支持lists(链表).sets(集合).zsets(有序集合).Hashes(哈希表)几种数据类型.这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的. 博客分类: NoSql---Redis nosqlredis 一 Redis介绍 Red

Redis 学习之常用命令及安全机制

该文使用centos6.5 64位    redis3.2.8 一.redis常用命令 键值常用命令: 1. keys 返回满足pattern的所有key. 127.0.0.1:6379> keys my* 127.0.0.1:6379> keys * 2.exits 确认key是否存在. 返回1表示存在 0表示不存在 127.0.0.1:6379> exists name 3.del :删除一个键 返回1:删除成功 0:失败 127.0.0.1:6379> del name (i

Redis学习(5)-常用命令

Redis常用命令Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以在Linux终端使用1.键值相关命令2.服务器相关命令 键值相关命令 Keys pattern 例如:keys *返回满足给定pattern的所有key exists 确认一个key是否存在 del删除一个key expire设置一个key的过期时间例如:expire addr 10  (时间10 s)ttl addr(使用ttl,获取addr的有效时长)返回-1,已经过期 move将当前数据库中的key转

【转】redis集群常用命令及说明

一.本文目的 介绍集群的基本情况及常用命令 二.集群的特点 3.集群优缺点 三.集群客户端命令(redis-cli -c -p port) 集群cluster info :打印集群的信息cluster nodes :列出集群当前已知的所有节点( node),以及这些节点的相关信息.节点cluster meet <ip> <port> :将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子.cluster forget <node_id> :从集群中移

redis集群常用命令

#1.redis-cli命令进入集群环境 redis-cli -c -p 7000 #2.查看redis整个集群的状况,看谁是主,谁是从,常用两种方式. #2.1.通过redis-trib.rb check方式查看, ./redis-trib.rb check 127.0.0.1:7000 #2.2.通过redis-cli方式查看, redis-cli -c -p 7000 cluster nodes #3.添加Master节点到集群 #3.1.按照Redis集群一的方式,创建端口为7006的新

转:Redis介绍及常用命令大全

一 Redis介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主持. Redis能运行在大多数POSIX(Linux, *BSD, OS X 和Solaris等)系统上,官方没有支持Windows的版本.目前最新的版本是2.2.11,这个版本主要是修复了一个2.2.7版本中遍历方式优化带来的一个bug. 和普通的Key-Value结构不同,R

Redis学习笔记~常用命令总结

回到目录 客户端redis-cli常用的命令总结 连接到服务器 redis-cli -h 127.0.0.1 -p 6379 --连接指定的redis服务器 发布/订阅, pub/sub模式运行在redis进程中,不会被持久化过,进程挂了,信息丢失 SUBSCRIBE Lind --订阅一个管道 PUBLISH Lind "你好,大叔!" --发布一个管道 键操作,redis数据都是由key/value组件,对key操作是所有操作的基础 DEL lind --删除键 Exist lin

「Redis 笔记」常用命令

编号 命令 描述 1 DEL key 此命令删除一个指定键(如果存在). 2 DUMP key 此命令返回存储在指定键的值的序列化版本. 3 EXISTS key 此命令检查键是否存在. 4 EXPIRE key seconds 设置键在指定时间秒数之后到期/过期. 5 EXPIREAT key timestamp 设置在指定时间戳之后键到期/过期.这里的时间是Unix时间戳格式. 6 PEXPIRE key milliseconds 设置键的到期时间(以毫秒为单位). 7 PEXPIREAT