Redis所支持的数据结构
1、启动Redis
2、Redis所支持的数据结构
2.1、Redis常用操作
2.2、String类型及操作
2.3、Hash类型及操作
2.4、List类型及操作
2.5、Set类型及操作
2.6、Zset类型及操作
1、启动Redis
首先进入到解压后的Redis目录
然后开启Redis服务器的daemon启动程序,命令:redis-server
最后开启Redis命令行操作工具,命令:redis-cli (若需要支持输入中文则命令:redis-cli --raw)
2、Redis所支持的数据结构
Redis允许的value数据结构类型有5种:String(字符串)、List(列表)、Set(集合)、Hash(哈希)、Zset(有序集合)。
再讲5中数据结构的操作命令前先归纳一下:
- 增加操作:String(set、mset),List(lpush 、rpush),Set(sadd),Hash(hset、hmset),Zset(zadd)
- 删除操作:String(del),List(lpop、rpop),Set(srem,spop),Hash(Hdel),Zset(zrem)
- 查询操作:String(get),List(lrange),Set(smembers),Hash(hkeys,hvals,hgetall),Zset(zrange)
- 返回长度操作:List(llen),Set(scard),Hash(hlen),Zset(zcard)
2.1、Redis常用操作
select number(选择数据库命令)
keys *(查看当前redis库中所有键)
keys xx*(查看xx开头的所有键)
exists key(查看键是否存在)
del key(删除此key及其对应的value)
expire key time(为key设置一个过期时间time(s),当到了过期时间时,自动删除键值)
persist key(移除key的过期时间)
ttl key(查询key的剩余过期时间,若没有设置过期时间为-1)
move key number(将一个键移到其他number库中)
dbsize(返回当前库有多少key)
flushdb (删除当前库所有key)
rename key1 key2(将key1重命名key2)
type key (返回key的类型)
2.2、String类型及操作
- String类型是最简单的类型,可以保存二进制字节序列。从内部看是一个byte数组,最大上限是1G字节。
- 用来存储三种类型的值:1.二进制序列字符串。 2.整型数据。 3.浮点数据。
操作命令:
set key value(添加或者更改key对应的value) get key(读取key对应的value) del key(删除此key及其对应的value)
setnx key value(若没有此键则添加数据,有则返回0。setnx的意思是set not exists,若不存在则添加)
setex key existstime value(设置键值对并指定有效期)
setrange key index value (从以前value的第index开始替换为新设定的值)
mset key1 value1 key2 value2...(一次性设置多个键值)
msetnx key1 value1 key2 value2...(若其中任意一个键存在都添加失败)
getset key value(返回旧值并设置一个新值)
getrange key offset1 offset2(取键对应值的子字符串)
mget key1 key2 key3....(获取多个值,若无值返回nil)
incr key(为键对应的值进行加1操作,key不存在时设置为0)
incrby key number(和incr类似,若无key则创建一个key)
append key value(给指定字符串在末尾添加新值)
strlen key (取出指定key的value长度)
2.3、Hash类型及操作
操作命令:
hkeys hash(看hash中所有键)
hvals hash(查看hash中所有值)
hgetall hash(找hash中所有键和值)
hset hash field value(在hash中添加一个字段)
hsetnx hash field value(设置一个字段,若存在此字段返回0)
hmset hash field1 value1 field2 value2....(同时设置多个多个字段)
hget hash field(获取hash中指定字段)
hmget hash field1 field2...(取hash中多个字段值)
hincrby hash field number(给字段加上指定值)
hexists hash field (测试字段是否存在)
hlen hash(返回hash的field数量)
hdel hash field(删除hash某个字段)
2.4、List类型及操作
- list在Redis存储为有序的字符串序列,其实就是每个子元素都是string类型的双向链表。最大长度为2^32。
操作命令:
lpush list value (从list头部插入值)
rpush list value(从list尾部插入值)
lrange list 0 -1 (查询list中所有值)
linsert list before(after) oldvalue newvalue (在list中的指定的值之前或者之后插入一个值)
lset list offset value (设定list中指定下标的元素值)
lrem list number value(从list头部顺序删除number个和value相同的值)
ltrim list offset1 offset2 (保留在offset1 offset2中的所有数据,其他删除)
lpop list (删除list头部,并返回删除元素)
rpop list (删除list尾部,并返回删除元素)
rpoplpush(删除第一个list的尾部,并添加到第二个list的头部,返回此元素)
lindex list index (返回list中index下标的元素)
llen list (返回list对应长度)
2.5、Set类型及操作
- 是一个字符串序列,set 内部使用hash表保持唯一性。用来做交集、并集、补集方便。
操作命令:
sadd set member(向set中添加元素,重复添加返回0)
smembers set(查询set中所有元素)
srem set member(在set中删除member,没有则返回0)
spop set (随机返回并删除set中的一个元素)
srandmember set(随机返回一个set中的元素,但不删除)
sdiff set1 set2 (返回set1对set2的补集)
sdiffstore set1 set2 set3(返回set2对set3的补集给set1)
sinter set1 set2(返回set1和set2的交集)
sunion set1 set2(返回set1和set2的并集)
sunionstore set1 set2 set3(set2和set3的并集结果存放在set1中)
smove set1 set2 member(从set1中移动member进入set2)
scard set(返回set元素个数)
sismember set member(判断set中是否有member有返回1,无返回0)
2.6、Zset类型及操作
- 在set基础上加了一个顺序属性。Zset中每个成员都有一个score关联,通过score来为集合中的成员从大到小排序。
- 经常作为索引使用。
操作命令:
zadd zset score member(向zset中添加成员,若member存在则根据score更新该元素顺序)
zrange zset 0 -1(查询所有成员)
zrange zset 0 -1 withscores(查询zset中所有分数和成员,按分数从小到大)
zrevrange zset 0 -1 withscores(查询zset中所有分数和成员,按分数从大到小)
zrem zset member(删除元素member)
zincrby zset score member(对member 的分数增加score)
zrank zset member (返回member在zset中的从小到大排名)
zrevrank zset member(返回member在zset中的从大到小排名)
zcount zset score1 score2(计算了分数在score1和score2间元素的个数)
zcard zset (返回集合中元素的个数)
zscore zset member(返回元素对应的score)
zremrangebyrank zset offset1 offset2(删除索引offset1到offset2之间的元素)
zremrangebyscore zset score1 score2(删除分数范围之间的元素)
Redis所支持的数据结构的更多相关文章
- Redis01——Redis究竟支持哪些数据结构
Redis已经越来越多地应用到互联网技术中,而关于Redis的相关问题,也成为面试中必不可少的一部分,本文开始将会逐渐把我了解到的关于Redis的一些面试问题整理出来,供各位参考,如有不对之处,烦请指 ...
- SSDB 一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis.
SSDB 一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis. 特性 替代 Redis 数据库, Redis 的 100 倍容量 LevelDB 网络支持, 使用 C/C++ ...
- Redis中5种数据结构的使用场景介绍
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/108.html?1455861435 一.redis 数据结构使用场景 原 ...
- redis中5种数据结构的使用
一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 ...
- Redis 的几种数据结构&五种数据类型对象
先看几种数据结构 通过分析底层的数据结构,学习如何根据场景选型和设计 1,简单动态字符串 redis使用的字符串SDS有别于C语言中的字符串 a, 结构 free字段为已分配但未使用的空间 len为已 ...
- Redis中的基本数据结构
Redis基础数据结构 基础数据结构 sds简单动态字符串 数据结构 typedef struct sdstr{ int len // 字符串分配的字节 int free // 未使用的字节数 cha ...
- Redis 概念以及底层数据结构
Redis 简介 REmote DIctionary Server(Redis) 是一个由SalvatoreSanfilippo写的key-value存储系统. Redis是一个开源的使用ANSI C ...
- Redis中5种数据结构的使用场景
一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 ...
- Redis 中 5 种数据结构的使用场景介绍
这篇文章主要介绍了Redis中5种数据结构的使用场景介绍,本文对Redis中的5种数据类型String.Hash.List.Set.Sorted Set做了讲解,需要的朋友可以参考下 一.redis ...
随机推荐
- 【转】xhEditor技术手册 网页编辑器基础教程
1. xhEditor入门基础 1.1. 在线可视化HTML编辑器概述1.2. 获取xhEditor1.3. xhEditor运行环境1.4. xhEditor基本使用指南 1.1. 在线可视化HTM ...
- Oracle清理回收站的方法
原文链接:http://blog.itpub.net/18841027/viewspace-1057765/ purge DBA_RECYCLEBIN用于删除Oracle数据库回收站的所有数据,需要s ...
- centos7 网络配置
vi /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPR ...
- oracle学习笔记1(环境搭建)
学习的开始先剧透一下,本人有点笨,本来想用oracle vbox,装个red hat+oracle,但是虚拟机一直报错,0x00000000内存不能written.所以便想到其他的办法,刚好接触了go ...
- WampServer自己DIY添加apache、php、mysql版本
下载自己需要的apache版本. 下载地址: http://httpd.apache.org/download.cgi http://www.apachelounge.com/download/ 解压 ...
- 采用镜像的方法安装python第三方库
转自:https://blog.csdn.net/s740556472/article/details/68557330 pip install --index https://pypi.mirror ...
- iOS - WKWebView加载不受信任的https (因用到IP地址加端口号去请求数据)
1.描述:因公司域名临时出现问题,所以项目中引用到了IP地址加端口号去请求数据,因而造成在wkwebView中某些网址打不开,查看错误是因为服务器证书无效,实际就是不受信任; 2.解决办法:在plis ...
- 7.8CSS部分的学习!
<!DOCTYPE html> <html> <head> <title>CSS元素选择器</title> <style type=& ...
- 新装的MySQL没有密码怎么办
新装的mysql没有密码怎么办 [root@localhost log]# mysql -u root -p Enter password: Welcome to the MySQL monitor. ...
- Android新手系列教程(申明:来源于网络)
Android新手系列教程(申明:来源于网络) 地址:http://blog.csdn.net/column/details/androidcoder666.html