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所支持的数据结构的更多相关文章

  1. Redis01——Redis究竟支持哪些数据结构

    Redis已经越来越多地应用到互联网技术中,而关于Redis的相关问题,也成为面试中必不可少的一部分,本文开始将会逐渐把我了解到的关于Redis的一些面试问题整理出来,供各位参考,如有不对之处,烦请指 ...

  2. SSDB 一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis.

    SSDB 一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis. 特性 替代 Redis 数据库, Redis 的 100 倍容量 LevelDB 网络支持, 使用 C/C++ ...

  3. Redis中5种数据结构的使用场景介绍

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/108.html?1455861435 一.redis 数据结构使用场景 原 ...

  4. redis中5种数据结构的使用

    一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 ...

  5. Redis 的几种数据结构&五种数据类型对象

    先看几种数据结构 通过分析底层的数据结构,学习如何根据场景选型和设计 1,简单动态字符串 redis使用的字符串SDS有别于C语言中的字符串 a, 结构 free字段为已分配但未使用的空间 len为已 ...

  6. Redis中的基本数据结构

    Redis基础数据结构 基础数据结构 sds简单动态字符串 数据结构 typedef struct sdstr{ int len // 字符串分配的字节 int free // 未使用的字节数 cha ...

  7. Redis 概念以及底层数据结构

    Redis 简介 REmote DIctionary Server(Redis) 是一个由SalvatoreSanfilippo写的key-value存储系统. Redis是一个开源的使用ANSI C ...

  8. Redis中5种数据结构的使用场景

    一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 ...

  9. Redis 中 5 种数据结构的使用场景介绍

    这篇文章主要介绍了Redis中5种数据结构的使用场景介绍,本文对Redis中的5种数据类型String.Hash.List.Set.Sorted Set做了讲解,需要的朋友可以参考下 一.redis ...

随机推荐

  1. 【转】使用Log4Net进行日志记录

    首先说说为什么要进行日志记录.在一个完整的程序系统里面,日志系统是一个非常重要的功能组成部分.它可以记录下系统所产生的所有行为,并按照某种规范表达出来.我们可以使用日志系统所记录的信息为系统进行排错, ...

  2. Linux目录详细说明大全(推荐)

    Linux目录详细说明大全,方便你以后合理规划及管理 "/" : 根目录Linux文件系统的入口.也是最高级,最重要的的目录.除衍生出其它目录,还和系统的开机,还原,系统修复有的, ...

  3. Ubuntu 14.04 安装 Blender,并放桌面

    1.打开Blender官网 2.在主页点击down按钮,跳转到下载页面 3.根据自己的操作系统,选择合适的版本,这里使用的是ubunut 64位,所以下载Linux 64bit,保存文件,一般保存到h ...

  4. Mybatis(二)基于注解的入门实例

    前言 上一篇简单的介绍了Mybatis的概念和基于XML来实现数据库的CRUD,这篇给大家实现基于注解的CRUD. 一.初始搭建 在基于注解当中前四步和上一篇基于XML是一样的,分别是: 1)创建数据 ...

  5. Mac vim“装逼”配置

    配置c++ 等编程语言补全等 from blog http://www.cnblogs.com/xiaobo-Linux/p/8909402.html 1. 安装 macvim brew instal ...

  6. python 切片获取list、tuple中的元素

    #-*- coding:UTF-8 -*- L=[] n=6 r=[1,2,3,4,5,6] for i in range(n): L.append(r[i]) print L # =>[1, ...

  7. libgl1-mesa-glx:i386 : 依赖: libglapi-mesa:i386

    libgl1-mesa-glx:i386 : 依赖: libglapi-mesa:i386 1.获取Android源代码 Android官网给出了从网上下载源代码的方法,具体流程如下网址所示:http ...

  8. 在springBoot中配置web.xml中配置的servlet

    第一种 web.xml (截取的需要转换的) 当拦截到 /socke t时执行该servlet <servlet> <servlet-name>websocket</se ...

  9. mui---获取入口文件对象

    在做APP的时候,发现在Hbuilder里面,如果是已经加载过的页面,可以通过 plus.webview.getWebviewById(id),拿到加载的页面对象,这里的id默认是url,但是入口文件 ...

  10. 7.9CSS总结

    2018-7-9 18:01:18 1.类选择器是 用  .      .xxx{}  (ps,公司常用的是类选择  ) 2.id选择器是用  #   #xx{}  (id选择器并不常用) 3.css ...