2. redis的数据类型
一. string类型
- 字符串类型是redis中最基本的数据类型,它能存储任何形式的内容,包含二进制数据,甚至是一张图片(二进制内容)。一个字符串类型的值存储的最大容量是1GB
命令
(1)setnx :如果不存在key,就插入,否则就保持原来的值 ( setnx crxy aaa )
(2)mset : 一次设置多个key ( mset crxy1 1 crxy2 2 )
(3)mget : 一次查询多个值 ( mget crxy1 crxy2 )
(4)incr crxy1 : 让crxy1对应的value自增 (只能针对int)
(5)incrby crxy1 n :让crxy1的value增加n
(6)decry : 自减
(7)decryby : 自减
(8)incrbyfloat crxy float:
(9)append crxy aaa : 给crxy的value后跟"aaa"
(10)strlen crxy : 返回value的长度注 : set命令会覆盖其他所有数据类型,转换为String类型
二. Hash
- hash类型的值存储了字段和字段值的映射,字段和字段值只能是字符串,不支持其他数据类型。hash类型的键至多可以存储\(2^{32}-1\)个字段。
命令
a. hset user:100 name zhangsan
b. hget user:100 name
//多次插入
c. hmset user:100 gender 0 birthday 1991-07-31
e. hmget user:100 gender
//获取所有user:100的属性
f. hgetall user:100
//插入age的年龄
g. hsetnx user:100 age 22
h. hdel user:100 age //删除value中的一个属性i. hkeys user:100 // 相当于map.keyset
j: hvals user:100 // 键值对中的所有value
k: hlen user:100 // user:100有几个键值对
三. list
- list是一个有序的字符串列表,用双向链表实现
- list可模拟队列
- 一个列表最多能容纳\(2^{32}-1\)个字符串
命令
a.左侧插入:
lpush list1 a
lpush list1 b
lpush list1 c : list1
b.右侧插入:
rpush list1 a
rpush list2 b : listc. 查询
lrange list1 0 -1 : 查询列表的0角标到最后一个角标的元素 (-1:最后个元素.-2:倒数第二个元素)
d. lpop list1 : 弹出左侧的一个 // 删除该元素
rpop list1 : 弹出右侧的一个
e. llen : 查看列表长度
f. lrem list1 1 b : 删除list1左侧的第一个b (删除所有b用0)
lrem list1 -1 b : 删除list1右侧的第一个b
g. lindex list1 0 : 获取0角标的元素
h. lset list1 0 m : 设置0角标的元素为m
i. ltrim list1 0 2 : 截取列表角标0-2
j. linsert list1 before m a : 在lsit1元素m的前面插入一个a (help linsert)k. rpoplpush list1 list2 : list1右侧弹出一个左侧插入到list2中
四. set
- set中存放一系列的字符串,这些字符串无序不可重复 (插入重复字符串不报错,只是没有结果)
- set适合集合运算,例如求交集,并集
命令
- sadd set1 2 3 4 : 向set集合添加'2,3,4',不可插入集合中已经存在的元素
- srem set1 2 : 返回1,删除成功
- sismember set1 3 : 查看元素是否存在
- smembers set1: 查看set1的所有元素
- sdiff set1 set2 : 查看在set1而不再set2中的元素 (差集)
- sinter set1 set2 : 查看set1和set2中共有的元素 (交集)
- sunion set set1 : 查看两个集合的 (并集)
- sdiffstore a set set1 : 把在set而不在set1中的元素放到集合a中(a的类型是set)
- spop set1 : 弹出一个元素
- srandmember set1 2 : 从set1中随机取出2个数据(这2个数据不会重复)
srandmember set1 -2 : 也是随机取2个, 这个元素可能重复 - srandmember key [count]
如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合。
如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。
五. sorted set
- 在集合set的基础上,为其中的每一个元素加上一个分数 , 便于获取topN
命令
- zadd zset1 10 a : 增加元素a,分值10
zadd zset1 +inf m : 向zset1中加入正无穷大的元素m - zscroe zset1 a : 获取元素a的分值
- zrange zset1 0 -1 withscores : 从0号开始取所有元素,并带着分值一起取得
- zrevrange zset1 0 [withscores] : 倒叙取得元素值
- zincreby zset1 2 a : 为zset1中的元素a的分值增加2
- zcard zset1 : 获取zset1中元素的个数
- zcount zset1 0 15 : 获取zset1中分值0-15 的元素
- zrem zset1 a : 删除zset1中的元素a
zrem zset 0 1 : 删除zset1中角标0,1的元素 - zremrangebyscroe zset1 0 10: 删除分值0-10的元素
注:zset和list的对比
1. 相同点:二者都有序,都可以获取某一范围的元素
2. 不同点:
(1)list用双向链表实现,访问链表两端的数据快,访问中间的数据慢
(2)zset使用散列表和跳跃表(skip list)实现,所以无论是两端还是中间元素的访问速度都很快
(3)list不能简单的调整某个元素的位置,而zset只需改变分值即可改变元素位置
(4)zset比list更耗费内存- zadd zset1 10 a : 增加元素a,分值10
2. redis的数据类型的更多相关文章
- Redis常用数据类型介绍、使用场景及其操作命令
Redis常用数据类型介绍.使用场景及其操作命令 本文章同时也在cpper.info发布. Redis目前支持5种数据类型,分别是: 1.String(字符串) 2.List(列表) 3.Hash(字 ...
- Redis笔记(三)Redis的数据类型
前面说过,Redis的一大特性是支持丰富的数据类型, 这为更多的应用场景提供了可能. Redis有五种数据类型,包括string,list,set,sorted set和hash,注意,Redis的数 ...
- Redis常用数据类型
Redis常用数据类型 转载自:http://blog.sina.com.cn/s/blog_7f37ddde0101021q.html Redis最为常用的数据类型主要有以下五种: ●Str ...
- Redis基本数据类型
-------------------Redis基本数据类型------------------- 1.String 字符串 1.概念 1.String 是redis最基本的类 ...
- Redis常用数据类型和事物以及并发
Redis数据类型 基本类型(String int): 如 set key value .get key 等 所有命令都是按照 key value keys * 可以将全部数据列出,其中后面的 &qu ...
- Redis五大数据类型的常用操作
在上一篇博文<centos安装redis>中,已经详细介绍了如何在centos上安装redis,今天主要介绍下Redis五大数据类型及其五大数据类型的相关操作. Redis支持五种数据类型 ...
- redis的数据类型及使用
Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) st ...
- Redis系列(二):Redis的数据类型及命令操作
原文链接(转载请注明出处):Redis系列(二):Redis的数据类型及命令操作 Redis 中常用命令 Redis 官方的文档是英文版的,当然网上也有大量的中文翻译版,例如:Redis 命令参考.这 ...
- 一、Redis的数据类型
一Redis的数据类型 string:字符串 hash:哈希 list:列表 set:集合 zset:有序集合(sorted set) 1.string(字符串) redis最基本的类型.可以理解成与 ...
- Redis的数据类型及其常用命令
快速入门Redis 首先安装redis: windows下安装redis Linux下安装redis 1. 什么是redis Redis属于nosql(非关系型数据库) 关系型数据库是基于关系表的数据 ...
随机推荐
- 【NOIP2013】货车运输
感觉这题挺水的……真的挺水的…… 原题: A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物,司机们想知道每辆车 ...
- Sublime Text3快捷方式与使用技巧
Sublime Text 3 快捷键精华版 Ctrl+Shift+P: 打开命令面板Ctrl+P: 搜索项目中的文件Ctrl+G: 跳转到第几行Ctrl+W: 关闭当前打开文件Ctrl+Shift ...
- java.lang.OutOfMemoryError: unable to create new native thread如何解决
工作中碰到过这个问题好几次了,觉得有必要总结一下,所以有了这篇文章,这篇文章分为三个部分:认识问题.分析问题.解决问题. 一.认识问题: 首先我们通过下面这个 测试程序 来认识这个问题:运行的环境 ( ...
- QQ登入(3)QQ空间分享-无需登入
public void myclick2(View v){ //QZone分享, SHARE_TO_QQ_TYPE_DEFAULT 图文,SHARE_TO_QQ_TYPE_IMAGE 纯图 ,SHAR ...
- prtg
prtg http://www.paessler.com/prtg/features prtg的sensor技术 数据库监视 Flexible Alerting 9 notification tech ...
- Underscore.js 函数节流简单测试
函数节流在日常的DOM界面数据交互中有比较大的作用,可以减少服务器的请求,同时减少客户端的内存影响 Underscore.js 本省就包含了函数节流的处理函数 _.throttle 和 _.debo ...
- .net 实现 URL重写,伪静态(方法一)
一,获得Mircosoft URLRewriter.dll(注意:此dll文件大小约为20KB,网上有8Kb的是不完整的文件,会报错) 二,在项目中该dll文件:添加引用(可以直接拷贝放入Bin文件夹 ...
- memcache 启动参数
启动方式: 参数 说明 -d 以守护程序(daemon)方式运行 -u root 指定用户,如果当前为 root ,需要使用此参数指定用户 -P /tmp/a.pid 保存PID到指定文件 内存设置: ...
- VB的if和elseif
VB中if和elseif的用法是: if...then...elseif...then...else...endif 切记在then的后面不要加冒号,加了冒号出现else没有if的错误,因为加了冒号表 ...
- android数据存储之File
android中使用File进行存储主要使用到OpenFileOutput和OpenFileInput两个方法,下面直接用一个例子来说明一下. (1)布局文件main.xml文件 <?xml v ...