Redis:

Redis是什么:

REmote DIctionary Server(远程字典服务器)

是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(Key-Value)分布式内存数据库。

基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSQL数据库之一,也被人称为数据结构服务器。

Redis的三个特点:

1)Redis支持数据持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用

2)Redis不仅仅支持简单的key-value类型的数据,同时还提供list、set、zset、hash等数据结构的存储

3)Redis支持数据的备份,即master-slave模式的数据备份

Redis能干啥:

1)内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务。

2)取最新记录。如:将最新的10条评论的ID放在Redis的List集合里面。

3)模拟类似于HttpSession这种需要设定过期时间的功能

4)发布、订阅消息系统

5)定时器、计数器

Redis基本命令及简单演示:

启动服务端:    redis-server

连接客户端:    redis-cli -p 6379(端口)

存:        set 键 值

取:        get 键

查看:       keys 匹配

清空当前库:    FLUSHDB

清空所有库:    FLUSHALL

选择库:      select 坐标

Key的命令

1)判断是否存在      

EXISTS 键

2)查询当前库的key

keys (匹配)

3)移动key

move 键 库号

4)为给定的key设置过期时间

  expire 键 秒钟

5)查看还有多少秒过期,-1表示永不过期,-2表示已过期

  ttl 键

6)查看你的key是什么类型

  type 键

7)删除键

  del 键

五大常用类型

String(字符串)

string是redis最基本的类型,string类型是二进制安全的。可以包含任何数据。比如jpg图片或者序列化对象。一个redis字符串value最多可以是512M。

1)追加

  append 键 内容

2)获得字符串长度

  strlen 键

3)针对数字的操作(一定要是数字)

  增加1:    incr 键

  减少1:    decr 键

  增加某值:    incrby 键 值

  减少某值:    decrby 键值 值

4)截取操作

  getrange 键 起始坐标 结束坐标(-1表示全部)

5)范围替换

  setrange 建 起始坐标 替换内容

6)创建的时候设置过期时间(set with expire)

  创建并设置:setex 键 秒速 值

  

7)不存在才能创建(存在则不会创建)(set if not exist)

  setnx 键 值

8)创建多个和获取多个  mset/mget

  

  msetnx(不存在才创建成功)

9)先获取再改值  getset

  

List(列表)

底层是个链表

1)lpush/rpush/lrange

  

2)左出右出 lpop/rpop

  

3)按坐标获取元素  lindex 键 下标序号

4)获取集合长度   llen 键

5)删除N个值     lrem 键 个数 值

6)截取指定范围的值后再赋值给key  ltrim key 开始位置 结束位置

7)转移1个元素    rpoplpush 原列表 目的列表

  

8)替换某个位置的值  lset key index value

8)在某个值旁边插入某个值  linsert key before/after 值1 值2

总结:

  一、键不存在,创建新的链表,键已存在,新增内容。

  二、没有值则对应键也消失

  三、对头位置处理快,中间位置很尴尬~

Set(集合)

Redis的Set是string类型的无序集合,它是通过HashTable实现的

1)插入              set key value1/value2/value3(value重复有且只添加一个)

2)查看              smembers key

3)存在多少个某值           sismember key value

4)获取集合里面的元素个数     scard key

5)删除集合中元素         srem key value

6)某个整数(随机出几个数)    srandmember key 个数

7)随机出栈            spop key

8)将key1的某个值赋给key2     smove key1  key2 value

9)数字集合类的处理

    差集:sdiff 源key 目标key

    交集:sinter 源key 目标key

    并集:sunion 源key 目标key

Hash(哈希)

类似于java的Map

Redis hash 是一个键值对集合。是一个string类型的field和value的映射表,hash特别适合用于存储对象

1)hset/mget/hmset/hmget/hgetall/hdel

  

2)查询长度  hlen

3)某key是否存在某key  hexists key1 key2

4)获取所有key  hkeys key

5)获取所有value  hvals key

6)加法  hincrby/hincrbyfloat

7)存在则赋值  hsetnx key主 key子 value

Zset(sorted set:有序集合)

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员

不同的是每个元素都会关联一个double类型的分数

redis正式通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

1)zadd key 分数1 value1 分数2 value2

2)获取值  zrange key 起始位置 结束位置

3)连值带分数的获取  zrange key 起始位置 结束位置 withscores

4)根据分数范围来获取  zrangebyscore key 开始分数 结束分数

  注:给结束分数带 ( 表示不包含

    +limit 起始偏移量 截取个数

5)某分数下对应的value值,删除元素  zrem key

6)获取个数  zcard

7)获取分数区间个数  zcount key 开始分数 结束分数

8)根据值获取下标  zrank key value

9)根据值获取分数  zscore key value

10)逆序获取下标  zrevrank key value

11)逆序输出值  zrevrange key 开始位置 结束位置

12)逆序分数获取值  zrevrangebyscore key 高分数 低分数

哪里可以获得redis常见数据类型操作命令

http://redisdoc.com/

Redis:基础知识及其常用数据类型和关键字的更多相关文章

  1. 【进阶之路】Redis基础知识两篇就满足(一)

    导言 大家好,我是南橘,一名练习时常两年半的java练习生,这是我在博客园的第一篇文章,当然,都是要从别处搬运过来的,不过以后新的文章也会在博客园同步发布,希望大家能多多支持^_^ 这篇文章的出现,首 ...

  2. Redis基础知识补充及持久化、备份介绍(二)--技术流ken

    Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)--技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis ...

  3. redis基础知识详解

    一.redis基础知识 1.Redis是什么Redis是一个开源的key-value存储系统. 和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表 ...

  4. Redis基础知识补充及持久化、备份介绍

    Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)–技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis持 ...

  5. Redis 02: redis基础知识 + 5种数据结构 + 基础操作命令

    Redis基础知识 1).测试redis服务的性能: redis-benchmark 2).查看redis服务是否正常运行: ping 如果正常---pong 3).查看redis服务器的统计信息: ...

  6. openresty开发系列13--lua基础语法2常用数据类型介绍

    openresty开发系列13--lua基础语法2常用数据类型介绍 一)boolean(布尔)布尔类型,可选值 true/false: Lua 中 nil 和 false 为"假" ...

  7. 【进阶之路】Redis基础知识两篇就满足(二)

    导言 大家好,我是南橘,一名练习时常两年半的java练习生,这是我在博客园的第二篇文章,当然,都是要从别处搬运过来的,不过以后新的文章也会在博客园同步发布,希望大家能多多支持^_^ 这篇文章的出现,首 ...

  8. Redis基础知识之—— 缓存应用场景

    转载原文:http://www.cnblogs.com/jinshengzhi/articles/5225718.html 一.MySql+Memcached架构的问题 Memcached采用客户端- ...

  9. php面试笔记(2)-php基础知识-常量和数据类型

    本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com 面试是每一个PHP初学者到PHP程序员必不可少的一步,冷 ...

随机推荐

  1. Problem 5

    Problem 5 # Problem_5.py """ 2520 is the smallest number that can be divided by each ...

  2. 巴塞尔问题(Basel problem)的多种解法——怎么计算$\frac{1}{1^2}+\frac{1}{2^2}+\frac{1}{3^2}+\cdots$ ?

    (PS:本文会不断更新) $\newcommand\R{\operatorname{Res}}$ 如何计算$\zeta(2)=\frac{1}{1^2}+\frac{1}{2^2}+\frac{1}{ ...

  3. 06005_Jedis入门

    1.Jedis介绍 (1)Redis不仅是使用命令来操作.现在基本上主流的语言都有客户端支持,比如Java.C.C#.C++.PHP.Node.js.Go等: (2)在官方网站里列有一些Java的客户 ...

  4. 在android平台打印C语言日志

    在android平台打印C语言日志 1.操作平台:AS2.0 2.步骤如下: 在C代码中添加如下代码: #define LOG_TAG "我的C语言日志:" #define LOG ...

  5. asp.net-EF事物与存储过程

    FK_Equipment_EquipmentClass 这个是sql中的命名规范,外键名称在前面,主键名称在后面 EF事务的代码 DbTransaction tran = null; try { ne ...

  6. 工具-VMWARE技巧-桥接连外网-WIN7

    使用虚拟机wmware如何连接宿主主机 最简单的方法,使用直接连接主机的模式,然后把宿主机的IP更改为和虚拟机同一个网段的机器就行 但是既要上网,有要连接虚拟机,就需要使用桥接,在编辑->虚拟网 ...

  7. BA-siemens-ppm模块在ALN层通信

    PPM作为新的扩展模块,有MS/TP通讯的能力,但是在常规设置的时候必须设置在PXC Modular下面,PPM上线也必须在PXC Modular上中超级终端设置,偶然通过一个项目实现了PPM挂载在A ...

  8. [JAVA]比毫秒System.currentTimeMillis()更精确的时间戳(纳米级时间戳)

     纳秒 ns(nanosecond):纳秒, 时间单位.一秒的10亿分之中的一个,即等于10的负9次方秒. 经常使用作 内存读写速度的单位,其前面数字越小则表示速度越快. 1纳秒=1000 皮秒 ...

  9. Keyboard的显示与隐藏

    一个控制键盘显示与隐藏的工具类分享给大家 public class KeyBoardTool { /** * 假设输入法在窗体上已经显示.则隐藏.反之则显示 * @param context */ p ...

  10. Android自己定义控件皮肤

    Android自己定义控件皮肤 对于Android的自带控件,其外观仅仅能说中规中矩,而我们平时所示Android应用中,一个简单的button都做得十分美观.甚至于很多button在按下时的外观都有 ...