参考文章:http://www.jb51.net/article/56448.htm
一、redis数据类型
·1.1 字符串-strings
有人说,如果只使用redis中的字符串类型,且不使用redis的持久化功能,那么,redis就和memcache非常非常像了。这说明strins类型是一个很基础的数据类型,也是任何存储系统都必须必备的数据类型。字符串类型是二进制安全的。
1、set
创建string。注意:此命令默认会覆盖已存在key的值。
用法:
set JOAN DORA set JOAN DORA nx -->如果存在key为JOAN时,则会失败 set JOAN DORA xx -- >成功
2、incr
如果value是数字类型(当然也是string的),可以使用此命令,进行加法操作。
用法:
set counter 100 incr counter -->101 incrby counter 49 -->150
在遇到数值操作时,redis会将字符串类型转换为数值。由于INCR等指令本身就具有原子操作的特性,所以我们完全可以利用redis的INCR、INCRBY、DECR、DECRBY等指令来实现原子计数的效果。假如,在某种场景下有三个客户端同时读取了mynum的值(值为2),然后对其同时进行了加1操作,那么,最后mynum的值一定是5。不少网站都利用redis的这个原子特性来实现业务上的统计计数需求。
3、get
取值,用法:
get JOAN -->DORA
1.2 列表-lists
rdis中的lists在底层实现并不是数组,而是链表,也就是对于一个具有上百万个元素的lists来说,在头部和尾部插入一个新元素,其时间复杂度是常数级别的。虽然lists有这样的优势,但同样尤其弊端,那就是,链表型lists的元素定位会比较慢,而数组型lists的元素定位就会快很多。
lpush、rpush、lrange
redis 的一种数据结构:双端列表。lpush是将alue放到列表的头部,rpush是将value放在列表的尾部。
用法:
rpush mylist a rpush mylist b lpush mylist first lrange mylist 0 -1 -->0代表列表的第一个 -1代表列表的最后一个 -2 是倒数第二个 rpush mylist a b c d "JOANDORA" --> 连续存放多个值
应用场景:
1、我们可以利用lists来实现一个消息队列,而且可以确保先后顺序,不必像Mysql那样还要通过order by来进行排序。
2、利用lrange可以很方便的实现分页功能。
3、在博客系统中,没篇博文的评论也可以存入一个单独的lists中。
1.2.1 LTRIM
对一个列表进行修剪,让列表只保留制定区间的元素。例如:LTRIM 0 2:表示只保留list前三个元素,其他元素都删除。
1.3 无序不重复集合 set
redis中的集合是一种无序的集合集合相关的操作也很丰富,如添加删除已有元素,取交集、并集、差集等。
用法:
//向集合myset中加入一个新元素"one" 127.0.0.1:6379> sadd myset "one" (integer) 1 127.0.0.1:6379> sadd myset "two" (integer) 1 //列出集合myset中的所有元素 127.0.0.1:6379> smembers myset 1) "one" 2) "two" //判断元素1是否在集合myset中,返回1表示存在 127.0.0.1:6379> sismember myset "one" (integer) 1 //判断元素3是否在集合myset中,返回0表示不存在 127.0.0.1:6379> sismember myset "three" (integer) 0 //新建一个新的集合yourset 127.0.0.1:6379> sadd yourset "1" (integer) 1 127.0.0.1:6379> sadd yourset "2" (integer) 1 127.0.0.1:6379> smembers yourset 2) "2" //对两个集合求并集 127.0.0.1:6379> sunion myset yourset 1) "1" 2) "one" 3) "2" 4) "two"
1.4 有序不重复集合 sorted set
有序集合中的每个元素都关联一个序号(score),这便是排序的依据。很多时候,我们都将redis中的有序集合叫做zsets。这是因为在redis中,有序集合相关的操作指令都是以z开头,比如:zrange、zadd等。
zadd 1 a --> 1是排序 zrange myset 0 -1 --> 查看集合元素 zrevrange myset 0 -1 --> 查看集合元素,反向 zrange myset 0 -1 withscores --> 打印元素的时候,间隔打印出序号
1.5 哈希-hashes
哈希是从redis-2.0版本之后才有的数据结构。hashes存的是字符串和字符串值之间的映射,比如一个用户要存储其全名、姓氏、年龄等等,就很适用hashes。
hmset key field value --> 将多个field-vaue存放到key中 hmset webset google www.google.com baidu www.baidu.com hmget webset google hget webset yahoo --> 能查,不过结果为空 hincrby user age 10 --> 给hash中age加10
二、其他操作命令
2.1、mset、mget
可同时完成多个key-value存取值
用法:
mset a 10 b 20 c 30 mget a b c
2.2、del
删除key-value
用法:del mylist
2.3、pop
取值,和push类似,也是分左和右。
用法:rpop mylist
lpop mylist
相关推荐
20-redis-redis中关于字符串类型数据的操作命令1.avi 21-redis-redis中关于字符串类型数据的操作命令2.avi 22-redis-redis中关于列表类型数据的操作命令1.avi 23-redis-redis中关于列表类型数据的操作命令2.avi 24-...
数据模型是key-value,但支持多种不同类型的值:字符串、列表、集合、排序集、哈希、流、HyperLogLog、Bitmaps。Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps. Bug修复 CONFIG ...
支持所有Redis数据类型; 转储TTL和到期时间; 可以加载TTL或原始过期时间作为过期密钥; 可以创建漂亮的/人类可读的转储(按排序顺序转储的键,缩进的输出); 可以在转储和加载时流式传输数据; 可用作较大...
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-...Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多...
相对Memcached,Redis提供了更多种数据类型,包含hash、set、list等;Redis还支持subscribe/publish命令,可以用于简单的消息发送与订阅;Redis 3.0开始支持集群服务;Redis也可以把数据库持久化,但是在大多数情况...
redis 是完全开源免费的,遵守...丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作redis客户端连接工具主要用于连接redis数据库,查看以及操作redis服务器的数据。
这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。 官网下载速度超级慢,下了好久才成功,上传备用
书深入浅出地介绍了Redis的5种数据类型,并通过多个实用示例展示了Redis的用法。除此之外,书中还讲述了Redis的优化方法以及扩展方法,是一本对于学习和使用 Redis 来说不可多得的参考书籍。
RedisDesktopManager2020.0.0.0客户端可视化工具最新版,绝对可用! Redis Desktop Manager是一款高性能的key-value开源数据库,基于 Qt 5 开发...它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。
它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。...
这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是...
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。这五种数据类型在内部的存储格式存在多种。
3.Redis数据类型之List类型
介绍redis的五种数据类型的使用场景,更便于学习redis的操作,了解使用!
本书深入浅出地介绍了Redis的5种数据类型,并通过多个实用示例展示了Redis的用法。除此之外,书中还讲述了Redis的优化方法以及扩展方法,是一本对于学习和使用 Redis 来说不可多得的参考书籍
Redis 是一款依据BSD开源协议发行的高性能Key-Value存储系统(cache and ...它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
本书深入浅出地介绍了Redis的5种数据类型,并通过多个实用示例展示了Redis的用法。除此之外,书中还讲述了Redis的优化方法以及扩展方法,是一本对于学习和使用 Redis 来说不可多得的参考书籍。 本书一共由三个部分...
使用Java操作Redis的字符串类型、list链表类型、hash哈希表类型、set无序集合类型的数据,简单易懂。
它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。