1、字符串(String)

基本操作:SET(设置)、GET(获取)、DEL(删除)其他操作传送门

root@localhost:~# redis-cli
127.0.0.1:> set msg hello
OK
127.0.0.1:> get msg
"hello"
127.0.0.1:> del msg
(integer)
127.0.0.1:> get msg
(nil)

2、列表(List)

基本操作:LPUSH/RPUSH(将元素推入列表左端/右端)、LPOP/RPOP(从列表左/右弹出元素)、LINDEX(获取指定位置上的元素)、LRANGE(获取指定范围内的元素)、LTRIM key_name index1 index2(修剪,只保留范围内元素,包括起止元素)其他操作传送门

root@localhost:~# redis-cli
127.0.0.1:> rpush list
(integer)
127.0.0.1:> rpush list
(integer)
127.0.0.1:> lpush list
(integer)
127.0.0.1:> lrange list - #可以用来获取当前列表中所有元素
) ""
) ""
) ""
127.0.0.1:> lpop list
""
127.0.0.1:> rpop list
""
127.0.0.1:> lindex list
""
127.0.0.1:> lindex list
(nil)
127.0.0.1:> lrange list -
) ""
127.0.0.1:> get list
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:> del list
(integer)
127.0.0.1:> lrange list -
(empty list or set)
127.0.0.1:> rpush list
(integer)
127.0.0.1:> lrange list -
) ""
) ""
) ""
) ""
127.0.0.1:> ltrim list -
OK
127.0.0.1:> lrange list -
) ""
) ""
) ""

3、集合(Set)

集合与列表的不同之处在于,集合储存的元素是无序且各不相同的。

基本操作:SADD(添加元素)、SREM(移除元素)、SISMEMBER(给定元素是否在集合中)、SMEMBERS(返回集合中所有元素)、SCARD(获取集合内元素数量)、SRANDMEMBER key_name [count](随机返回1[count]个元素,count为正数时,元素不会重复,为负数时,元素可能重复多次)、SPOP(随机移除并返回某个元素)、SMOVE key1 key2 item(如果key1中存在item,则将item加入key2并移除key1中的item)其他操作传送门

root@localhost:~# redis-cli
127.0.0.1:> sadd set
(integer) #返回添加元素中原本set中没有的元素数量
127.0.0.1:> sadd set
(integer)
127.0.0.1:> sadd set
(integer)
127.0.0.1:> smembers set
) ""
) ""
) ""
127.0.0.1:> sismember set
(integer)
127.0.0.1:> sismember set
(integer)
127.0.0.1:> srem set
(integer)
127.0.0.1:> smembers set
) ""
) ""
127.0.0.1:> srem set
(integer)
127.0.0.1:> scard set
(integer)
127.0.0.1:> srandmember set
""
127.0.0.1:> srandmember set -
) ""
) ""
) ""
) ""
) ""
127.0.0.1:> srandmember set
) ""
) ""
127.0.0.1:> srandmember set
(empty list or set)
127.0.0.1:> spop set
""
127.0.0.1:> smembers set
) ""
127.0.0.1:> smove set set2
(integer) 0 #SMOVE成功返回1,失败返回0
127.0.0.1:> smove set set2
(integer)
127.0.0.1:> smembers set2
) ""
127.0.0.1:> smembers set
(empty list or set)

4、散列(hash)

散列储存多个键值对之间的映射,显然键需要各不相同。

Redis不支持嵌套,故散列嵌套只能间接实现。

基本操作:HSET/HMSET(关联给定的键值对/多个键值对)、HGET/HMGET(获取给某个/多个定键的值)、HGETALL(获取所有键值对)、HDELL(删除给定键的键值对)、HLEN(获得键值对数量)其他操作传送门

root@localhost:~# redis-cli
127.0.0.1:> del hash
(integer)
127.0.0.1:> hset hash a
(integer)
127.0.0.1:> hmset hash b c
OK
127.0.0.1:> hget hash a
""
127.0.0.1:> hget hash e
(nil)
127.0.0.1:> hmget hash a e
) ""
) (nil)
127.0.0.1:> hgetall hash
) "a"
) ""
) "b"
) ""
) "c"
) ""
127.0.0.1:> hdel hash a b
(integer)
127.0.0.1:> hgetall hash
) "c"
) ""
127.0.0.1:> hdel hash a
(integer)
127.0.0.1:> hlen hash
(integer)

5、有序集合(Sorted Set)

有序集合储存键值对,其中,键必须各不相同,称为成员(member),值须为浮点数,称为分数(score)

基本操作:ZADD(添加带分数的成员或更新成员的分数)、ZRANGE/ZREVRANGE [WITHSCORES](根据给定的位置,获取按分数升序/降序排列的有序集合中的成员[分数])、ZRANGEBYSCORES/ZREVRANGEBYSCORES  [WITHSCORES](获取有序集合在给定分数范围内的成员[分数])、ZREM(移除成员)其他操作传送门

root@localhost:~# redis-cli
127.0.0.1:> zadd zset i1
(integer)
127.0.0.1:> zadd zset i2 i3
(integer)
127.0.0.1:> zrange zset -
) "i2"
) "i1"
) "i3"
127.0.0.1:> zrange zset - withscores
) "i2"
) ""
) "i1"
) ""
) "i3"
) ""
127.0.0.1:> zrangebyscore zset withscores
) "i2"
) ""
) "i1"
) ""
127.0.0.1:> zrem zset i1
(integer)
127.0.0.1:> zrangebyscore zset withscores
) "i2"
) ""

Redis学习笔记(一)五种数据类型的更多相关文章

  1. Redis学习笔记(五)- 数据类型之set类型

    Redis 的set是string类型的无序集合.set元素最大可以包含(2的32次方-1)个元素.set的是通过hash table实现的,所以添加,删除,查找的复杂度都是O(1).hash tab ...

  2. (C/C++学习笔记) 十五. 构造数据类型

    十五. 构造数据类型 ● 构造数据类型概念 Structured data types 构造数据类型 结构体(structure), 联合体/共用体 (union), 枚举类型(enumeration ...

  3. 【转】Redis学习笔记(五)如何用Redis实现分布式锁(2)—— 集群版

    原文地址:http://bridgeforyou.cn/2018/09/02/Redis-Dsitributed-Lock-2/ 单机版实现的局限性 在上一篇文章中,我们讨论了Redis分布式锁的实现 ...

  4. Objective-C学习笔记(五)——数据类型与限定词

    如同其它不论什么的编程语言一样,想要更深入的学习.必需要了解该门语言的数据类型与限定词. OC的数据类型例如以下: (1)int:整型:   int a;      int b=2;     int ...

  5. Redis学习笔记(五) 基本命令:Hash操作

    原文链接:http://doc.redisfans.com/hash/index.html 学习前先明确一下概念,这里我们把Redis的key称作key(键),把数据结构hash中的key称为fiel ...

  6. Redis 学习笔记(五)高可用之主从模式

    上一节提到了 Redis 的持久性,也就是在服务器实例宕机或故障时,拥有再恢复的能力.但是在这个服务器实例宕机恢复期间,是无法接受新的数据请求.对于整体服务而言这是无法容忍的,因此我们可以使用多个服务 ...

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

    查看所有的key keys * 清空所有的key flushall 检查key是否存在 exists key 设置已存在的key的时长 expire key //设置key为10s 查看key还剩多少 ...

  8. Redis学习笔记(四)-数据类型之list类型

    redis的list类型其实就是一个每个子元素都是string类型的双向链表.所以[lr]push和[lr]pop命令的算法时间复杂度都是O(1).另外list会记录链表的长度.所以llen操作也是O ...

  9. Redis学习笔记(三)-数据类型之string类型

    string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象.从内部实现来看其实string可以看作byte ...

  10. Redis学习笔记(五)——数据结构之哈希(Hash)

    一.介绍 Redis hash是一个string类型的field和value的映射表,hash特别设于用于存储对象. Redis中每个hash可以存储232 - 1 键值对(40多亿). 基本命令: ...

随机推荐

  1. Visual Studio 2017 本地调试 Chrome浏览器自动退出

    在使用VS 2017(15..6 .15.7)对.NET Core MVC应用程序进行本地调试的时候,选择使用Chrome浏览器.但输入中文 就自动关闭Chrome浏览器,随后结束调试.但复制.粘贴中 ...

  2. 1.15-1.16 sqoop action

    一.sqoop action1 http://oozie.apache.org/docs/4.0.0/DG_SqoopActionExtension.html 1.准备文件 ## [root@hado ...

  3. VS中用C#开发应用程序的调试入门、技巧和实例(转载)

    入门篇 假设你是有着.Net平台的程序员,并且使用Visual Studio 做为开发工具. 断点:最简单的一种,设置一个断点,程序执行到那一句就自动中断进入调试状态.设置断点,在你觉得有问题的代码行 ...

  4. STLstack,queue

    今天一开始用C去摸栈和队列,差不多昨天早上也在摸,摸烦了就去搞DP然后DP也没搞好,就是很烦很烦!!!! 然后今天那些C的栈队列的步骤和名称熟的不要不要的,然而数据结构的c语言用指针,传递,简直麻烦, ...

  5. oracle的日期数据类型

    https://blog.csdn.net/qq_33573235/article/details/78154928(转)

  6. Mecanim动画系统 - 在角色上使用Mask 叠加动画层

    http://www.narkii.com/club/thread-305706-1.html 2013-10-9 01:15 上传 下载附件 (78.65 KB) 导读:五分钟了解Mecanim角色 ...

  7. [3dmax教程] 人物+骨骼+蒙皮+动画教程

    人物+骨骼+蒙皮+动画完整教程选准备好一个人,做人的方法我在这里就不做了,大家可以学都用poser来做一个.  在大腿里建立4根骨骼! 在前视图中移动如图所示位置! 做一段简单的骨骼向前伸的动画,做4 ...

  8. CTP 下单返回错误: 没有报单权限 和字段错误需要注意的问题

    没有报单权限一般被认为期货公司没有开权限, 但是更多的问题是没有填写 BrokerId, InvestorId 下单字段错误注意一个容易忽略的地方: a. order 应该全部设为0, b. orde ...

  9. python 的 数据类型

    数据类型 1.1整型int py2中有int有范围,超出自动转为long长整型,py3中只有int 整除py2中无小数,可加一行代码实现 十进制转二进制 print(bin(10))十进制转八进制 p ...

  10. OSPF-1-OSPF的数据库交换(1)

    一.OSPF路由器ID(RID) 选举过程: 1.使用router-id id 命令中配置的路由器ID 2.up着的环回接口最大的ip 3.up着的非环回接口最大ip   如果路由器的RID发生了变化 ...