Redis学习笔记(一)五种数据类型
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学习笔记(一)五种数据类型的更多相关文章
- Redis学习笔记(五)- 数据类型之set类型
Redis 的set是string类型的无序集合.set元素最大可以包含(2的32次方-1)个元素.set的是通过hash table实现的,所以添加,删除,查找的复杂度都是O(1).hash tab ...
- (C/C++学习笔记) 十五. 构造数据类型
十五. 构造数据类型 ● 构造数据类型概念 Structured data types 构造数据类型 结构体(structure), 联合体/共用体 (union), 枚举类型(enumeration ...
- 【转】Redis学习笔记(五)如何用Redis实现分布式锁(2)—— 集群版
原文地址:http://bridgeforyou.cn/2018/09/02/Redis-Dsitributed-Lock-2/ 单机版实现的局限性 在上一篇文章中,我们讨论了Redis分布式锁的实现 ...
- Objective-C学习笔记(五)——数据类型与限定词
如同其它不论什么的编程语言一样,想要更深入的学习.必需要了解该门语言的数据类型与限定词. OC的数据类型例如以下: (1)int:整型: int a; int b=2; int ...
- Redis学习笔记(五) 基本命令:Hash操作
原文链接:http://doc.redisfans.com/hash/index.html 学习前先明确一下概念,这里我们把Redis的key称作key(键),把数据结构hash中的key称为fiel ...
- Redis 学习笔记(五)高可用之主从模式
上一节提到了 Redis 的持久性,也就是在服务器实例宕机或故障时,拥有再恢复的能力.但是在这个服务器实例宕机恢复期间,是无法接受新的数据请求.对于整体服务而言这是无法容忍的,因此我们可以使用多个服务 ...
- redis的入门篇---五种数据类型及基本操作
查看所有的key keys * 清空所有的key flushall 检查key是否存在 exists key 设置已存在的key的时长 expire key //设置key为10s 查看key还剩多少 ...
- Redis学习笔记(四)-数据类型之list类型
redis的list类型其实就是一个每个子元素都是string类型的双向链表.所以[lr]push和[lr]pop命令的算法时间复杂度都是O(1).另外list会记录链表的长度.所以llen操作也是O ...
- Redis学习笔记(三)-数据类型之string类型
string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象.从内部实现来看其实string可以看作byte ...
- Redis学习笔记(五)——数据结构之哈希(Hash)
一.介绍 Redis hash是一个string类型的field和value的映射表,hash特别设于用于存储对象. Redis中每个hash可以存储232 - 1 键值对(40多亿). 基本命令: ...
随机推荐
- 纯java config配置Spring MVC实例
1.首先创建一个Maven工程,项目结构如下: pom.xml添加Spring和servlet依赖,配置如下 <project xmlns="http://maven.apache.o ...
- 20个Flutter实例视频教程-第06节: 酷炫的路由动画-2
博客地址: https://jspang.com/post/flutterDemo.html#toc-94f 视频地址: https://jspang.com/post/flutterDemo.htm ...
- python3 类 组合
解决类与类之间代码冗余问题有两种解决方案: 第一 是继承,第二是组合 1:继承 描述的是类与类之间的也就是什么是什么的关系 2: 组合 描述的是类与类之间的关系, 是一种什么有什么的关系的,也 ...
- html扩展调用qq聊天窗口
需要在官方给qq开通客服功能,使用相应的html代码,别人才能通过链接调用到该qq 官方生成调用链接 over!over!over!
- hexo添加新菜单并实现新菜单的文章归类
1.添加收藏夹菜单,新建一个页面,命名为 favorite,命令如下: hexo new page favorite ## 然后就可以看到在source下多了一个favorite的文件夹,里面有一个i ...
- Android教程
转载,但请务必在明确位置注明出处! http://stormzhang.com/android/2014/07/07/learn-android-from-rookie/ Android Killer ...
- HDU2444 【二分图判定+最大匹配】
套模板很好的题? #include<bits/stdc++.h> using namespace std; const int N=2e2+10; const int M=4e4+10; ...
- atcoder#073D(枚舉)
題目鏈接: http://arc073.contest.atcoder.jp/tasks/arc073_b 題意: 給出n, m兩個數, n是物品數目, m是背包容量, 接下來n行輸入, wi, vi ...
- [Xcode 实际操作]九、实用进阶-(26)对Storyboard(故事版)中的文字标签(Label)进行本地化处理
目录:[Swift]Xcode实际操作 对Storyboard(故事版)中的文字标签(Label)进行本地化处理. 点击项目名称[DemoApp]进入项目信息面板. [Build Setting]-& ...
- iOS图标去掉阴影和反光
在ios开发时, 程序的图标会被apple进行美化, 自动圆角, 加上阴影和反光效果: 如果有时候不想要阴影和反光,可以这样做: 在Info.plist中 添加一个Icon already inclu ...