相对其它 nosql 数据库的优势

  1. 支持数据的持久化,可以将内存中的数据保存到磁盘中,下次重启以后再加载回内存 ;
  2. 支持更多的数据类型,除了 KV 以外,还有 list set hash zset 等 ;
  3. 支持数据的备份,主从模式的数据备份

杂项知识

  1. 单线程

  2. 默认是16个数据库,初始使用第 0 数据库 ;

    数据库之间的切换:select dbid

  3. dbsize 查看当前数据库 key 的数量 ;

    查看所有key的内容: keys *

    也支持模糊查询的 ;

  4. Flushdb 清空当前库 ;

  5. flushall : 通杀所有库 ;

  6. 统一密码:所有的数据库,都是使用同一个密码 ;

  7. redis索引,都是从零开始 ;

  8. 端口号为6379的故事:手机键盘 MERZ


基本数据类型

  1. String

    redisstring 是二进制安全的,也就是它可以包含任何东西,比如jpg图片或者序列化对象 ;

    对应的 value,最多可以保存 512 M数据 ;

  2. Hash

  3. List ,底层是个链表 ;

  4. Set

  5. Zset

对于其中的 key ,每一个 key 就是一个对象 ;


Key 关键字

-- 列出所有的key
key *
-- 判断某个 key 是否存在
exists key
-- 剪切操作,将当期的 key 移动到指定的数据库
move key db
-- 为给定的 key 设置过期时间,按照 秒 计算
expire key s
-- 查看 key 还有多少秒过期,-1 永不过期,-2 已过期
ttl key
-- 查看 key 是什么类型
type key
-- 删除 key
del key

String 类型(单键单值)

-- 在 key 末尾追加字符串
append
-- 获取字符串的长度,字符数
strlen
-- key 值每次加/减去 1,下面的几个数值的操作,value 必须是数值
incr/decr key
-- 一次性加/减 num
incrby/decrby key num
-- 获取指定区间的值,取字符串的多少位到多少位 ,角标从 0 开始,-1 表示到最后
getrange key begin end
-- 从指定位开始,插入 value ,会覆盖掉后面的数据
setrange key index value
-- 设置 key 的缓存时间
setex key time value
-- 创建 key 的时候,判断下是否存在,如果存在,则不创建
setnx key value
-- 一次性对多个值进行操作,但是如有一个操作失败,则全部失败
mset/mget/msetnx

List 类型 (单键多值)

-- 从两端插入数据
lpush/rpush key values
-- 遍历 key 角标从零开始,-1 表示到最后
lrange key begin end
-- 从两端取值
lpop/rpop
-- 根据角标获取对应的值
lindex key index
-- 获取 key 长度,也就是 value 的个数
llen key
-- 删除对应 key 的 N 个 相同的value
lrem key N value
-- 截取指定范围的值,然后再次赋值给 key
ltrim key begin end
-- 把源右边的拿走,放到目的的左边
rpoplpush orignalLsit newList
-- 改变具体下标对应的值
lset key index value
-- 在 key 的某个位置插入 value
linsert key before/after origanl new

Set 类型 (单键多值)

-- 添加一个或者对个值,对于重复添加的值,不会爆错,但是会自动额过滤掉 ;
sadd key value[s] ;
-- 列出 key 的所有 value
smembers key
-- 判断 value 在不在 key 里面
sismember key value
-- 获取集合中的元素个数
scard key
-- 删除集合中的元素
srem key value
-- 在 set 里面随机出 num 个整数
srandmember key num
-- 随机出栈一个数
spop key
-- 将 key1 里面的某个 value1 添加到 key2 里面
smove key1 key2 value1 -- 差集 以第一个为参照,在第一个里面,不在后面任何一个里面
sdiff key1 key2 ...keyN
-- 交集
sinter key1 key2 ...keyN
-- 并集
sunion key1 key2 ...keyN

Hash类型 (KV模式,V是一个键值对)

-- 常用的操作
hset hget hmset hmget hgetall hdel
-- hash 的key 对应的 键值对 数量
hlen
-- 某个 key 对应的KV里面,是否存在要找的 K
hexists key K-V-K
-- 获取 key 对应的键值对的所有键
hkeys key
-- 获取 key 对应的键值对的所有值
hvals key -- 对key 的 K-V-V 数值进行增减
hincrby/hincrbyfloat key K-V-K num
--
hsetnx key K-V-V value

Zset类型 (KV模式,V是一个键值对)

-- 添加、创建元素
zadd key score1 value1 score2 value2 ... scoreN valueN
-- 取值
zrange key begin end [withscores]
-- ( 不包含 还可以选择限制显示的数量
zrangebyscore key [(]beginScore [(]endScore [limit beginIndex num ]
-- 删除元素
zrem key K-V-V
-- 返回 键值对的数量
zcard key
-- 计算在某个区间内的键值对的个数
zcount key score1 score2
-- 获取 K-V-V 的下标值
zrank key K-V-V
-- 获取对应的 K-V-V 对应的 score
zscore key K-V-V
-- 逆序获取下标值
zrevrank key K-V-V
-- 逆序输出
zrevrange key beginindex endindex
-- 从高到低 输出对应的分数对应的
zrevrangebyscore key highScore lowScore

redis 基本数据类型及使用的更多相关文章

  1. Redis常用数据类型介绍、使用场景及其操作命令

    Redis常用数据类型介绍.使用场景及其操作命令 本文章同时也在cpper.info发布. Redis目前支持5种数据类型,分别是: 1.String(字符串) 2.List(列表) 3.Hash(字 ...

  2. Redis笔记(三)Redis的数据类型

    前面说过,Redis的一大特性是支持丰富的数据类型, 这为更多的应用场景提供了可能. Redis有五种数据类型,包括string,list,set,sorted set和hash,注意,Redis的数 ...

  3. Redis常用数据类型

    Redis常用数据类型 转载自:http://blog.sina.com.cn/s/blog_7f37ddde0101021q.html     Redis最为常用的数据类型主要有以下五种: ●Str ...

  4. Redis基本数据类型

    -------------------Redis基本数据类型------------------- 1.String 字符串     1.概念         1.String 是redis最基本的类 ...

  5. Redis常用数据类型和事物以及并发

    Redis数据类型 基本类型(String int): 如 set key value .get key 等 所有命令都是按照 key value keys * 可以将全部数据列出,其中后面的 &qu ...

  6. Redis五大数据类型的常用操作

    在上一篇博文<centos安装redis>中,已经详细介绍了如何在centos上安装redis,今天主要介绍下Redis五大数据类型及其五大数据类型的相关操作. Redis支持五种数据类型 ...

  7. redis的数据类型及使用

    Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) st ...

  8. Redis系列(二):Redis的数据类型及命令操作

    原文链接(转载请注明出处):Redis系列(二):Redis的数据类型及命令操作 Redis 中常用命令 Redis 官方的文档是英文版的,当然网上也有大量的中文翻译版,例如:Redis 命令参考.这 ...

  9. 一、Redis的数据类型

    一Redis的数据类型 string:字符串 hash:哈希 list:列表 set:集合 zset:有序集合(sorted set) 1.string(字符串) redis最基本的类型.可以理解成与 ...

  10. Redis的数据类型及其常用命令

    快速入门Redis 首先安装redis: windows下安装redis Linux下安装redis 1. 什么是redis Redis属于nosql(非关系型数据库) 关系型数据库是基于关系表的数据 ...

随机推荐

  1. Spring - 环境安装

    安装IDEA的非Community版本和Java的包之后就可以用Java来HelloWorld了. 然后去这个链接:https://github.com/spring-guides/gs-rest-s ...

  2. (转载):nmon使用

    转:http://www.cnblogs.com/mululu/p/6398483.html 博客园 首页 新随笔 联系 管理 订阅 随笔- 76  文章- 1  评论- 2  Nmon的安装及使用 ...

  3. 如何设置xshell代理?

    场景:我想在公司内部用一台服务器A访问客户内网的机器C.在公司和客户之间有一台中间服务器B,我只能先连接到中间服务器,然后通过中间服务器跳转才能到客户C机器. 上面场景的连接策略:A->B-&g ...

  4. 我的BO之导航属性

    我的BO 1-我的BO之强类型 2-我的BO之数据保护 3-我的BO之状态控制 4-我的BO之导航属性 数据需要导航 数据之间普遍存在关系,做业务处理时往往也是按照关系在数据之间查询和处理.业务处理可 ...

  5. Go by Example-图解数组

    基本概念 1.数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形.字符串或者自定义类型. 2.在 Go 中因为数组的内存布局是连续的,所以可以通过索引(位置 ...

  6. 关于long_query_time的设置,可不可以说是mysql的一个小小bug呢

    我们知道对对于MySQL的日志功能,我们可以完全自己控制到底写还是不写.一般来说,binlog我们一般会开启,而对于慢查询我们一般会在开发的时候调试和观察SQL语句的执行速度.但今天发现一个问题.在使 ...

  7. Oracle sql 复习题目总结

    sql 题目一 表结构 1.表名:g_cardapply 字段(字段名/类型/长度): apply_no varchar8; //申请单号(关键字) apply_date date; //申请日期 s ...

  8. 组合数学---P1358 扑克牌

    P1358 扑克牌 题解 组合数学 Π c[剩余未选牌数][ai] ( i = 1,2,...,m ) 注意 组合数也要取模,不然数字太大会炸 组合数的具体实现就是Dp啊 代码 #include< ...

  9. 双缓冲技术局部更新原理之派生自View

    package com.loaderman.customviewdemo; import android.content.Context; import android.graphics.Canvas ...

  10. C#依赖注入实例

    http://qing.weibo.com/tj/400082fa33001h7x.html 1.5 实现依赖注入1.5.1 背景介绍 设计模式中,尤其是结构型模式很多时候解决的就是对象间的依赖关系, ...