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. layui 复选框checkbox 全选写法

    前语:本来我是不想写layui框架的博客的,有的时候数据经过layui渲染后原生的写法就取不到值了,一定要用它框架的写法,实在蛋疼,故写之,以后用到可以省点时间去度娘! HTML: <div i ...

  2. iOS 中这些是否熟练掌握——(2)

    接上一篇博文,本篇博文是作者原创,用于记录从网上查阅的一些资料,并对自己的知识体系进行一下总结,成文以供学习使用. 1.Cocoa Touch 包含了什么?不包含什么?与 Cocoa 有什么区别? 相 ...

  3. Flutter实战视频-移动电商-46.详细页_自定义TabBar Widget

    46.详细页_自定义TabBar Widget 主要实现详情和评论的tab provide定义变量 自己做一个tab然后用provide去控制 定义两个变量来判断是左侧选中了还是右侧选中了.并定义一个 ...

  4. UVa 10891 Game of Sum (DP)

    题意:给定一个长度为n的整数序列,两个人轮流从左端或者右端拿数,A先取,问最后A的得分-B的得分的结果. 析:dp[i][j] 表示序列 i~j 时先手得分的最大值,然后两种决策,要么从左端拿,要么从 ...

  5. HTML学习笔记(四)常用标签

    1.超链接 <a href="url">Link text</a> eg:<a href="http://www.w3school.com. ...

  6. Qt 生成word、pdf文档

    需求:将软件处理的结果保存为一个报告文档,文档中包含表格.图片.文字,格式为word的.doc和.pdf.生成word是为了便于用户编辑. 开发环境:qt4.8.4+vs2010 在qt的官网上对于p ...

  7. 百度地图API示例 JS

    http://developer.baidu.com/map/jsdemo.htm#c2_2

  8. 51nod 1068【简单博弈】

    思路 手动打表, N 1 : A出1 A胜: 2 : A出2 A胜: 3 : A只能出2的整数幂&&这个数<=3,所以只能出1,2:A出1的时候,B就是2的情况,B胜:A出2的时 ...

  9. 解决 unity 生成 android apk read Resources

    http://www.cnblogs.com/solq/archive/2012/05/21/2511522.html TextAsset t = (TextAsset)Resources.Load( ...

  10. Window 10 Alt Tap 切换窗口,设置成Windows 7风格

    升级了Windows 10 以后,切换窗口非常的难受.新版的窗口切换的图标变成了窗口预览了,这总让我一瞬间找不到要去的窗口,所以我打算切换成Windows 7 的小图标风格. Windows + R ...