冠亚体育手机网站Redis的简单使用和介绍,数据库进行内容缓存和高访问负载

NoSQL(Not Only
SQL),泛指非关系型数据库,是为了管理高并发读写、海量数据的高效用存款和储蓄和做客、高增加性和高可用性而发生的。

1、什么是NoSQL

分类 相关产品 典型应用 数据模型 优点 缺点
键值对(Key-Value)存储 Redis、Voldemort、Berkeley DB 内容缓存、处理高访问负载 一系列键值对 快速查询 存储的数据缺少结构化
列存储数据库 Cassandra、HBase、Riak 分布式文件系统 以列簇式存储,将同一列数据存在一起 查询速度快,可扩展性强,更容易进行分布式扩展 功能相对局限
文档型数据库 MongoDB、CouchDB Web应用 一系列键值对 数据结构要求不严格 查询性能不高,缺乏统一的查询语法
图形数据库 Neo4j、InfoGrid 社交网络,推荐系统,专注于构建关系图谱 图结构 利用图结构相关算法 需要对整个图做计算才能得出结果,不容易做分布式的集群方案

    NoSQL   =   Not Only  SQL

本篇将首要解说怎么样使用
Redis()数据库进行内容缓存和高访谈负载,redis
使用 C
语言开采的一个开源的高质量的键值对数据库,通过提供多样键值数据类型来适应差别场景下的囤积要求,如今Redis
扶持的键值数据类型有为数不菲种,例如字符串类型、列表类型、有序聚集类型、散列类型、会集类型。Redis
官方也给大家提供了大器晚成部分测验数据,有 50 个并发程序来实践 10
万次央求,Redis 读的快慢高达了 11 万次/秒,写的快慢直达了 8.1 万次/秒。

    非关系型的数据库

冠亚体育手机网站 1

    

Redis
最广大的利用途景正是运用它作为缓存(音讯或物品内容、闲聊式的在线好朋友列表),除此还应该有任务队列(秒杀、抢购)、网站访问总结、数据过期管理(能够准确到飞秒)、应用名次的榜单、布满式集群布局中的
session 分离等。

2、
为何供给NoSQL

1.Linux下安装Redis数据库

    High performance  高并发读写

$ scp ~/Downloads/redis-4.0.1.tar.gz root@192.168.2.10:/usr/local //上传安装包
$ ssh root@192.168.2.10             //SSH连接

# yum -y install gcc gcc-c++ autoconf automake  //gcc、gcc-c++的库文件
# cd /usr/local
# tar -zxvf redis-4.0.1.tar.gz          //解压缩
# cd redis-4.0.1                 //切换到该目录下
# make                      //编译,将.c文件编译为.o文件
# make PREFIX=/usr/local/redis install      //指定路径安装
# cd /usr/local
# ls                       //如果存在redis文件夹,则安装成功

    Huge Storage      海量数据的高作用存款和储蓄和访问

其中 /usr/local/redis/bin/ 下包含:

    High Scalability && High Availability   高可扩大性和高可用性

redis-benchmark         //性能测试的一个工具
redis-check-aof         //aof文件修复的一个工具 redis-check-aof --fix appendonlly.aof
redis-check-dump         //rdb文件检查的一个工具,rdb文件为Redis默认数据库文件
redis-check-rdb         //rdb文件修复的一个工具 redis-check-rdb --fix dump.rdb
redis-cli            //命令行的一个客户端
redis-sentinel -> redis-server
redis-server           //redis服务器启动的命令

    

接下去继续我们的命令:

3、NoSQL数据库的四大分类

# cd redis-4.0.1
# cp redis.conf /usr/local/redis
# cd /usr/local/redis
# vim redis.conf         //编辑Redis的配置文件

    键值(Key-Value)存储

切实铺排步骤:

    列存储

1)绑定你的授权ip地址:改正69行的 bind 127.0.0.1 为 bind
[host](绑定到具有互联网: 注释掉69行的 bind 127.0.0.1)

    文书档案数据库

2)关闭珍爱格局:将88行的 protected-mode yes 订正为 daemonize no

    图形数据库

3)配置后台运营:将136行的 daemonize no 修改为 daemonize yes

冠亚体育手机网站 2

4)配置 Redis 漫长化:
福特ExplorerDB格局(私下认可协助,不必要布署)和AOF方式(将509行的appendonly no 改正为
appendonly yes,538-540为合营计谋的安装,开启 appendfsync always,注释
appendfsync
everysec,always为没更改一回就伙同,everysec为每生机勃勃秒同步,no为区别步,为了安全此处选用always)。

    

编写制定实现后退出 vim,之后还亟需开放 Redis 的 6379 端口:

4、NoSQL的特点

# vim /etc/sysconfig/iptables   //打开Linux防火墙的设置
//增加代码 -A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT

//退出 vim,执行防火墙重启命令
# service iptables restart
# ./bin/redis-server ./redis.conf //启动redis服务器,可以通过 ps -ef | grep -i redis 查看启动是否成功

    易扩展

还大概有局地任何 Redis 命令如下:

    灵活的数据模型

# ./bin/redis-cli shutdown    //停止redis服务器
# ./bin/redis-cli         //打开redis命令行客户端

    大数据量,高性能

2.Redis的数据布局

    高可用

亟需理解的是,Redis 的 Key
设置不要过长也绝可是短,要有联合的命名规范。先看一下 keys 的操作:

    

$ ssh root@192.168.2.10     //SSH连接
# /usr/local/redis/bin/redis-cli
> keys *             //显示所有的key
> keys my?            //显示以my开头的所有key
> del my1 my2 my3        //删除my1、my2、my3
> exists my1           //检查是否存在,存在返回1,不存在返回0
> get my1            //获取key的value值
> rename my1 my2         //重命名my1为my2
> expire my1 1000        //设置key过期时间,单位秒
> ttl my1            //剩余超时时间,没有设置则返回-1
> type my1            //获取key对应value的类型

5、Redis高品质键值对数据库,扶助的键值数据类型

1.存款和储蓄字符串 String

    字符串类型

二进制是高枕无忧的,存入和收获的数据大器晚成致;Value 最多能够容纳的数量长度是 521
M。存款和储蓄 String 常用的命令:

    列表类型

> set name zhangsan       //赋值 set [key][value]
> get name            //取值 get [key]
> getset name lisi        //取值并赋值
> del name            //删除 del [key]
> incr num            //数值递增1,如果没有就默认创建0并递增1 incr [key]
> decr num            //数值递减1,如果没有就默认创建0并递减1
> incrby num2 5         //数值递增指定值,如果没有就默认创建0 incrby [key][指定值]
> decrby num2 5         //数值递减指定值,如果没有就默认创建0 decrby [key][指定值]
> append num3 5         //插入指定内容,如果有则追加内容,如果没有则新创建 append [key][插入值]

    有序集和花色

2.囤积哈希 Hash

    散列类型

仓库储存 Hash 能够用作是 String Key 和 String Value 的 Map 容器,符合累积值-对象 的信息,举个例子客户名、密码、年龄之类,每八个 Hash 能够储存4294967295 个键值对。存款和储蓄 Hash 常用的指令:

    集结类型

> hset myhash username tom    //赋值单个属性 hset [key][Hash键值对]
> hmset myhash username tom2 rose age 20 //赋值多个属性 hmset [key][Hash键值对1] rose [Hash键值对2]
> hget myhash username      //获取单个属性 hget [key][key2]
> hmget myhash username age   //获取多个属性 hget [key][key2][key3]
> hgetall myhash         //获取全部值

> hdel myhash username age    //删除多个属性
> del myhash           //删除整个集合
> hincrby myhash age 5      //增加属性值
> hexists myhash username    //判断某个属性中的key是否存在,存在返回1,不存在返回0
> hlen myhash          //获取属性个数 hlen [key1]
> hkeys myhash          //获取所有属性名称 hkeys [key1]

    

3.仓库储存字符串列表 List

6、Redis的使用项景

在 Redis 中,List(ArrayList 使用数组情势,LinkedList
使用双向链表方式)顺序是依据插入顺序排序的叁个字符串链表,和数据结构中的普通链表是意气风发律的,能够在它的底部和尾巴部分增添新的因素,在插入的时候,借使该
key 不设有,那么 Redis
就可感觉这一个键成立一个新的链表,相反,假如链表中具备因素都被移除了,那么该键也会被从数据库中删除。存款和储蓄List 常用的命令:

    缓存

> lpush mylist a b c     //从双向链表的头部开始添加,如果mylist不存在则创建 lpush [key][value1][value2]..
> lpushx mylist d       //从双向链表的头部开始添加,如果mylist不存在则不插入
> rpush mylist 1 2 3     //从双向链表的尾部开始添加
> lrange mylist 0 5      //查看链表 lrange [key][开始位置][结束位置]

> lpop mylist         //弹出双向链表的头部元素,弹出后,双向链表中就没有这个元素了
> rpop mylist         //弹出双向链表的尾部元素
> rpoplpush mylist1 mylist2  //将mylist1里面头部元素弹出插入mylist2头部
> llen mylist         //获取元素个数 llen [key]

> lrem mylist 1 2       //从头到尾删除1个2 lrem [key][删除的个数][删除的元素]
> lrem mylist -1 2      //从尾到头删除1个2
> lrem mylist 0 2       //从尾到头删除所有2

> lset mylist 3 k       //第三个value值设置为k
> linsert mylist before b 11 //第一个b之前插入11
> linsert mylist after b 22  //第一个b之后插入22

    职责队列

rpoplpush 命令在新闻发布系统中的使用情状:

    网址访问总括

冠亚体育手机网站 3

    应用排名榜

4.存款和储蓄字符串集结 Set

    数据过期管理

和 List 类型不一样的是,Set 会集中不容许现身重复的成分,严节的,Set
能够包蕴的最大因素数量是 4294967295。存储 Set 常用的命令:

    布满式集群结构中的session抽离

> sadd myset a b c      //向Set中添加了三个值 sadd [key][Set集合值]
> srem myset a b       //删除指定元素
> smembers myset       //查看Set中元素 smembers [key]
> sismember myset c      //判断Set中是否存在c,存在返回1,不存在返回0

> sdiff myset myset2     //返回两个Set集合的差集运算
> sdiffstore my my1 my2    //将两个Set集合的差集存储到另一个集合(my)中
> sinter myset myset2     //返回两个Set集合的交集运算
> sunion myset myset2     //返回两个Set集合的并集运算

> scard myset         //返回Set集合成员数量
> srandmember myset      //随机返回Set中一个成员

    

5.积攒有序字符串集合 SortedSet

7、redis基本操作

SortedSet 中的成员在会集中的地点是稳步的。存款和储蓄 SortedSet 常用的授命:

    进入redis:redis-cli

> zadd mysort 65 aa 85 bb 95 cc //有序添加元素 zadd [key][姓名 分数][姓名 分数]...
> zscore mysort aa       //获得分数
> zcard mysort         //返回集合成员数量
> zrem mysort tom cc      //删除元素

> zrange mysort 0 -1      //范围查询,-1表示最后,显示姓名
> zrange mysort 0 -1 withscores //范围查询,姓名分数都会显示
> zrevrange mysort 0 -1 withscores //范围查询,由大到小排序显示

> zremrangebyrank mysort 0 2  //按照排序的范围进行删除,0~2位置
> zremrangebyscore mysort 70 90 //按照分数进行删除,70~90

> zrangebyscore mysort 0 90   //按照分数查0~90之间的
> zrangebyscore mysort 0 90 withscores limit 0 2 //按照分数查0~90之间的,由大到小排序,只显示前2个
> zcount mysort 60 100     //获取60~100之间的个数

    存储:set name value

SortedSet 能够使用于游戏的积分名次榜、营造索引数据。

    取值: get name

3.Redis的绝大很多据库和事情

    查看全体的键:keys *

三个 Redis 实例最多能够提供拾伍个数据库(0-15),暗中认可连接第 0
号数据库,也能够透过select 接纳数据库:

    删除键值对:del name

> select 1           //选择1号数据库
> move myset 2         //移动myset到2号数据库

    

支撑职业(全体命令都将串行化施行)的操作:

8、Jedis入门

> multi     //开启事务
> exec     //提交事务
> discard    //回滚事务

    Jedis是Redis官方首要推荐的Java客商端开拓包

4.使用Jedis操作Redis数据库

    

Jedis()是 Redis 官方首要推荐的 Java
客户端开垦包,

    

亟待加上 Maven 信任:

9、java使用Jedis

<!-- jedis -->
<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>2.9.0</version>
  <type>jar</type>
  <scope>compile</scope>
</dependency>

冠亚体育手机网站 4冠亚体育手机网站 5

普通形式操作 Redis:

 1 package com.jedis.test;
 2 
 3 import redis.clients.jedis.Jedis;
 4 
 5 /**
 6  * Created by Administrator on 2017-07-13.
 7  */
 8 public class JedisDemo1 {
 9     /**
10      * 单实例测试
11      */
12     public static void main(String[] args) {
13         //设置IP地址和端口
14         Jedis jedis=new Jedis("192.168.21.195",6379);
15         //保存数据
16         jedis.set("name","lu");
17         //获取数据
18         String value=jedis.get("name");
19         System.out.println("name对应的:"+value);
20         //释放资源
21         jedis.close();
22     }
23 }
Jedis jedis = null;
try {
  jedis = new Jedis("123.57.73.52",6379);
  jedis.set("name", "zhangsan");           //保存数据
  String value = jedis.get("name");         //获取数据
  System.out.println(value);
} catch (Exception e) {
  e.printStackTrace();
} finally {
  jedis.close();                   //释放资源
}

jedis单实例测量试验

行使 Jedis 连接池操作 Redis:

冠亚体育手机网站 6冠亚体育手机网站 7

//获得连接池的配置对象
JedisPoolConfig config = new JedisPoolConfig();
//设置最大连接数, 默认8个
config.setMaxTotal(8);
//设置最大空闲连接数, 默认8个
config.setMaxIdle(8);
//获得连接池
JedisPool jedisPool = new JedisPool(config, "123.57.73.52",6379);

//获得核心对象
Jedis jedis = null;
try {
  jedis = jedisPool.getResource();
  jedis.set("name2", "lisi");            //保存数据
  String value = jedis.get("name2");        //获取数据
  System.out.println(value);
} catch (Exception e) {
  e.printStackTrace();
} finally {
  jedis.close();                  //释放资源
}
 1 package com.jedis.test;
 2 
 3 
 4 import redis.clients.jedis.Jedis;
 5 import redis.clients.jedis.JedisPool;
 6 import redis.clients.jedis.JedisPoolConfig;
 7 
 8 import java.util.Date;
 9 
10 /**
11  *连接池的方式连接
12  */
13 public class JedisDemo2 {
14     public static void main(String[] args) {
15         //获取连接池的配置
16         JedisPoolConfig config = new JedisPoolConfig();
17         //设置最大连接数
18         config.setMaxTotal(30);
19         //设置最大空闲连接数
20         config.setMaxIdle(10);
21         //获得连接池
22         JedisPool jedisPool=new JedisPool(config,"192.168.21.195",6379);
23         //获得核心对象
24         Jedis jedis=null;
25         try {
26             //通过连接池获得连接
27             jedis=jedisPool.getResource();
28             //设置数据
29             jedis.set("name","张三");
30             //获取数据
31             String value = jedis.get("name");
32             System.out.println("name对应的value:"+value);
33         }catch (Exception e){
34             e.printStackTrace();
35         }finally {
36             if (jedis!=null){
37                 jedis.close();
38             }
39             if (jedisPool!=null){
40                 jedisPool.close();
41             }
42         }
43     }
44 
45 }

如上正是本文的全体内容,希望对我们的就学抱有利于,也可望大家多多打点脚本之家。

jedis连接池方式连接

您大概感兴趣的稿子:

  • JavaWeb禁绝浏览器缓存当前Web页面包车型地铁秘技
  • java中对Redis的缓存进行操作的示范代码
  • Java完毕LRU缓存的实例安详严整
  • Java
    Ehcache缓存框架入门级使用实例
  • ehcache开源缓存框架_引力节点Java大学收拾
  • Java客商端应用Jedis操作redis缓存示例代码
  • java
    整型数与Integer的缓存浓重了解
  • javaWeb中采取Redis缓存实例剖析

 

10、Redis5种数据类型

    字符串(String)

    字符串列表(list卡塔尔(قطر‎

    有序字符串集结(sorted set卡塔尔国

    哈希(hash)

    字符串会集(set卡塔尔国

    

11、key定义的注意点;

    不要过长

    不要过短

    统大器晚成的命名标准

    

12、存储String

    二进制安全的,存入和获取的数目少年老成致

    Value最多能够宽容的多长是512M

 

13、存款和储蓄String常用命令

    赋值

    取值

    删除

    扩大命令

    取值增减

冠亚体育手机网站 8冠亚体育手机网站 9

redis 127.0.0.1:6379> set company lu
OK
redis 127.0.0.1:6379> get company
"lu"
redis 127.0.0.1:6379> getset company baidu
"lu"
redis 127.0.0.1:6379> get company
"baidu"
redis 127.0.0.1:6379> del company
(integer) 1
redis 127.0.0.1:6379> get company
(nil)
redis 127.0.0.1:6379> incr num
(integer) 1
redis 127.0.0.1:6379> get num
"1"
redis 127.0.0.1:6379> incr num
(integer) 2
redis 127.0.0.1:6379> get num
"2"
redis 127.0.0.1:6379> incr name
(error) ERR value is not an integer or out of range
redis 127.0.0.1:6379> decr num
(integer) 1
redis 127.0.0.1:6379> decr num2
(integer) -1
redis 127.0.0.1:6379> incrby num 5
(integer) 6
redis 127.0.0.1:6379> incrby num3 5
(integer) 5
redis 127.0.0.1:6379> decrby num3 2
(integer) 3
redis 127.0.0.1:6379> append num 5
(integer) 2
redis 127.0.0.1:6379> get num
"65"
redis 127.0.0.1:6379> append num4 4
(integer) 1
redis 127.0.0.1:6379> get num4
"4"

积累String常用命令

13、存储Hash
    
String Key和String
Value的map容器
  
 每八个Hash能够储存42949672玖拾贰个键值对

  
 储存Hash常用命令:

        赋值
        取值删除扩张数字
      
 自学命令

 

冠亚体育手机网站 10冠亚体育手机网站 11

 1 redis 127.0.0.1:6379> hset myhash username jack
 2 (integer) 1
 3 redis 127.0.0.1:6379> hset myhash age 18
 4 (integer) 1
 5 redis 127.0.0.1:6379> hmset myhash2 username rose age 21
 6 OK
 7 redis 127.0.0.1:6379> hget myhash username
 8 "jack"
 9 redis 127.0.0.1:6379> hget myhash age
10 "18"
11 redis 127.0.0.1:6379> hmget myhash username age
12 1) "jack"
13 2) "18"
14 redis 127.0.0.1:6379> hgetall myhash
15 1) "username"
16 2) "jack"
17 3) "age"
18 4) "18"
19 redis 127.0.0.1:6379> hdel myhash2 username
20 (integer) 1
21 redis 127.0.0.1:6379> hgetall myhash2
22 1) "age"
23 2) "21"
24 redis 127.0.0.1:6379> del myhash2
25 (integer) 1
26 redis 127.0.0.1:6379> hgetall myhash2
27 (empty list or set)
28 redis 127.0.0.1:6379> hincrby myhash age 5
29 (integer) 23
30 redis 127.0.0.1:6379> hexists myhash username
31 (integer) 1
32 redis 127.0.0.1:6379> hexists myhash password
33 (integer) 0
34 redis 127.0.0.1:6379> hlen myhash
35 (integer) 2
36 redis 127.0.0.1:6379> hkeys myhash
37 1) "username"
38 2) "age"
39 redis 127.0.0.1:6379> hvalues myhash
40 (error) ERR unknown command 'hvalues'
41 redis 127.0.0.1:6379> hvals myhash
42 1) "jack"
43 2) "23"

存款和储蓄Hash常用命令

 

14、存储list
    ArrayList使用数组形式
    LinkedList使用双向链接格局
    双向链表中加进数量
    双向链表中除去数据
    
    存款和储蓄list常用命令:
        两端增添
        两端弹出
        扩张命令
        查看列表
        获取列表成分个数

冠亚体育手机网站 12冠亚体育手机网站 13

  1 redis 127.0.0.1:6379> lpush mylist a b c
  2 (integer) 3
  3 redis 127.0.0.1:6379> lpush mylist 1 2 3
  4 (integer) 6
  5 redis 127.0.0.1:6379> rpush mylist2 a b c
  6 (integer) 3
  7 redis 127.0.0.1:6379> rpush mylist2 1 2 3
  8 (integer) 6
  9 redis 127.0.0.1:6379> lrange mylist 0 5 
 10 1) "3"
 11 2) "2"
 12 3) "1"
 13 4) "c"
 14 5) "b"
 15 6) "a"
 16 redis 127.0.0.1:6379> lrange mylist2 0 -1
 17 1) "a"
 18 2) "b"
 19 3) "c"
 20 4) "1"
 21 5) "2"
 22 6) "3"
 23 redis 127.0.0.1:6379> lrange mylist2 0 -2
 24 1) "a"
 25 2) "b"
 26 3) "c"
 27 4) "1"
 28 5) "2"
 29 redis 127.0.0.1:6379> lpop mylist
 30 "3"
 31 redis 127.0.0.1:6379> lrange mylist 0 -1
 32 1) "2"
 33 2) "1"
 34 3) "c"
 35 4) "b"
 36 5) "a"
 37 redis 127.0.0.1:6379> rpop mylist 
 38 "a"
 39 redis 127.0.0.1:6379> lrange mylist2 0 -1
 40 1) "a"
 41 2) "b"
 42 3) "c"
 43 4) "1"
 44 5) "2"
 45 6) "3"
 46 redis 127.0.0.1:6379> rpop mylist2 
 47 "3"
 48 redis 127.0.0.1:6379> rpop mylist2 
 49 "2"
 50 redis 127.0.0.1:6379> lrange mylist2 0 -1
 51 1) "a"
 52 2) "b"
 53 3) "c"
 54 4) "1"
 55 redis 127.0.0.1:6379> llen mylist
 56 (integer) 4
 57 redis 127.0.0.1:6379> llen mylist2
 58 (integer) 4
 59 redis 127.0.0.1:6379> llen mylist3
 60 (integer) 0
 61 redis 127.0.0.1:6379> lpushx mylist x
 62 (integer) 5
 63 redis 127.0.0.1:6379> lrange mylist 0 -1
 64 1) "x"
 65 2) "2"
 66 3) "1"
 67 4) "c"
 68 5) "b"
 69 redis 127.0.0.1:6379> lpushx mylist3 x
 70 (integer) 0
 71 redis 127.0.0.1:6379> rpushx mylist2 x
 72 (integer) 5
 73 redis 127.0.0.1:6379> lrange mylist2
 74 (error) ERR wrong number of arguments for 'lrange' command
 75 redis 127.0.0.1:6379> lrange mylist2 0 -1
 76 1) "a"
 77 2) "b"
 78 3) "c"
 79 4) "1"
 80 5) "x"
 81 redis 127.0.0.1:6379> lpush mylist3 1 2 3
 82 (integer) 3
 83 redis 127.0.0.1:6379> lpush mylist3 1 2 3
 84 (integer) 6
 85 redis 127.0.0.1:6379> lpush mylist3 1 2 3
 86 (integer) 9
 87 redis 127.0.0.1:6379> lrange mylist3 0 -1
 88 1) "3"
 89 2) "2"
 90 3) "1"
 91 4) "3"
 92 5) "2"
 93 6) "1"
 94 7) "3"
 95 8) "2"
 96 9) "1"
 97 redis 127.0.0.1:6379> lrem mylist3 2 3
 98 (integer) 2
 99 redis 127.0.0.1:6379> lrange mylist3 0 -1
100 1) "2"
101 2) "1"
102 3) "2"
103 4) "1"
104 5) "3"
105 6) "2"
106 7) "1"
107 redis 127.0.0.1:6379> lrem mylist3 -2 1
108 (integer) 2
109 redis 127.0.0.1:6379> lrange mylist3 0 -1
110 1) "2"
111 2) "1"
112 3) "2"
113 4) "3"
114 5) "2"
115 redis 127.0.0.1:6379> lrem mylist3 0 2
116 (integer) 3
117 redis 127.0.0.1:6379> lrange mylist3 0 -1
118 1) "1"
119 2) "3"
120 redis 127.0.0.1:6379> lrange mylist 0 -1
121 1) "x"
122 2) "2"
123 3) "1"
124 4) "c"
125 5) "b"
126 redis 127.0.0.1:6379> lset mylist 3 mmm
127 OK
128 redis 127.0.0.1:6379> lrange mylist 0 -1
129 1) "x"
130 2) "2"
131 3) "1"
132 4) "mmm"
133 5) "b"
134 redis 127.0.0.1:6379> lpush mylist4 a b c 
135 (integer) 3
136 redis 127.0.0.1:6379> lpush mylist4 a b c 
137 (integer) 6
138 redis 127.0.0.1:6379> lrange mylist4 0 -1
139 1) "c"
140 2) "b"
141 3) "a"
142 4) "c"
143 5) "b"
144 6) "a"
145 redis 127.0.0.1:6379> linsert mylist4 before b 11
146 (integer) 7
147 redis 127.0.0.1:6379> lrange mylist4 0 -1
148 1) "c"
149 2) "11"
150 3) "b"
151 4) "a"
152 5) "c"
153 6) "b"
154 7) "a"
155 redis 127.0.0.1:6379> linsert mylist4 after b 22
156 (integer) 8
157 redis 127.0.0.1:6379> lrange mylist4 0 -1
158 1) "c"
159 2) "11"
160 3) "b"
161 4) "22"
162 5) "a"
163 6) "c"
164 7) "b"
165 8) "a"
166 redis 127.0.0.1:6379> lpush mylist5 1 2 3
167 (integer) 3
168 redis 127.0.0.1:6379> lpush mylist6 a b c
169 (integer) 3
170 redis 127.0.0.1:6379> rpoplpush mylist5 mylist6
171 "1"
172 redis 127.0.0.1:6379> lrange mylist5 0 -1
173 1) "3"
174 2) "2"
175 redis 127.0.0.1:6379> lrange mylist6 0 -1
176 1) "1"
177 2) "c"
178 3) "b"
179 4) "a"

存储list常用命令

15、存储Set
    和List类型不一致的是,Set集结中不准现身重复的因素
        
    存款和储蓄set常用命令:
        增添/删除成分
        获得集结中的成分
        集结中的差集运算
        会集中的交集运算
        会集中的并集运算
        扩充命令   

冠亚体育手机网站 14冠亚体育手机网站 15

 1 redis 127.0.0.1:6379> sadd myset a b c
 2 (integer) 3
 3 redis 127.0.0.1:6379> sadd myset a
 4 (integer) 0
 5 redis 127.0.0.1:6379> sadd myset 1 2 3
 6 (integer) 3
 7 redis 127.0.0.1:6379> srem myset 1 2
 8 (integer) 2
 9 redis 127.0.0.1:6379> smembers myset
10 1) "3"
11 2) "c"
12 3) "a"
13 4) "b"
14 redis 127.0.0.1:6379> sismember myset a
15 (integer) 1
16 redis 127.0.0.1:6379> sismember myset 6
17 (integer) 0
18 redis 127.0.0.1:6379> saaa mya1 a b c
19 (error) ERR unknown command 'saaa'
20 redis 127.0.0.1:6379> sadd mya1 a b c
21 (integer) 3
22 redis 127.0.0.1:6379> sadd mya2 a c 1 2
23 (integer) 4
24 redis 127.0.0.1:6379> sdiff mya1 mya2
25 1) "b"
26 redis 127.0.0.1:6379> sinter mya1 mya2
27 1) "c"
28 2) "a"
29 redis 127.0.0.1:6379> sunion mya1 mya2
30 1) "1"
31 2) "a"
32 3) "b"
33 4) "c"
34 5) "2"
35 redis 127.0.0.1:6379> smembers myset
36 1) "3"
37 2) "c"
38 3) "a"
39 4) "b"
40 redis 127.0.0.1:6379> scard myset
41 (integer) 4
42 redis 127.0.0.1:6379> srandmember myset
43 "a"
44 redis 127.0.0.1:6379> srandmember myset
45 "a"
46 redis 127.0.0.1:6379> srandmember myset
47 "3"
48 redis 127.0.0.1:6379> sdiffstore my1  mya1 mya2 
49 (integer) 1
50 redis 127.0.0.1:6379> smembers my1
51 1) "b"
52 redis 127.0.0.1:6379> sinterstore my2 mya1 mya2
53 (integer) 2
54 redis 127.0.0.1:6379> smembers my2
55 1) "c"
56 2) "a"
57 redis 127.0.0.1:6379> sunionstore my3 mya1 mya2
58 (integer) 5
59 redis 127.0.0.1:6379> smembers my3
60 1) "1"
61 2) "a"
62 3) "b"
63 4) "c"
64 5) "2"

储存Set常用命令

    存款和储蓄Set使用意况
        跟踪一些唯生龙活虎性数据
        用于爱戴数据对象时期的涉及关系

16、存储Sorted-Set
    Sorted-Set中的成员在聚聚集之处是一动不动的
    
    存款和储蓄Sorted-Set常用命令:
        添日币素
        删除成分
        得到成分
        范围查询
        扩张命令 

冠亚体育手机网站 16冠亚体育手机网站 17

 1 redis 127.0.0.1:6379> zadd mysort 70 zs 80 ls 90 ww
 2 (integer) 3
 3 redis 127.0.0.1:6379> zadd mysort zs
 4 (error) ERR wrong number of arguments for 'zadd' command
 5 redis 127.0.0.1:6379> zadd mysort 100 zs
 6 (integer) 0
 7 redis 127.0.0.1:6379> zadd mysort 60 tom
 8 (integer) 1
 9 redis 127.0.0.1:6379> zscore mysort zs
10 "100"
11 redis 127.0.0.1:6379> zcard mysort
12 (integer) 4
13 redis 127.0.0.1:6379> zrem mysort tom ww
14 (integer) 2
15 redis 127.0.0.1:6379> zcard mysort
16 (integer) 2
17 redis 127.0.0.1:6379> zadd mysort 85 jack 95 rose
18 (integer) 2
19 redis 127.0.0.1:6379> zrange mysort 0 -1
20 1) "ls"
21 2) "jack"
22 3) "rose"
23 4) "zs"
24 redis 127.0.0.1:6379> zrange mysort 0 -1 withscores
25 1) "ls"
26 2) "80"
27 3) "jack"
28 4) "85"
29 5) "rose"
30 6) "95"
31 7) "zs"
32 8) "100"
33 redis 127.0.0.1:6379> zrevrange mysort 0 -1 withscores
34 1) "zs"
35 2) "100"
36 3) "rose"
37 4) "95"
38 5) "jack"
39 6) "85"
40 7) "ls"
41 8) "80"
42 redis 127.0.0.1:6379> zremrangebyrank mysort 0 4
43 (integer) 4
44 redis 127.0.0.1:6379> zrevrange mysort 0 -1 withscores
45 (empty list or set)
46 redis 127.0.0.1:6379> zadd mysort 80 zs 90 ls 100 ww
47 (integer) 3
48 redis 127.0.0.1:6379> zremrangebyscore mysort 80 100
49 (integer) 3
50 redis 127.0.0.1:6379> zrevrange mysort 0 -1 withscores
51 (empty list or set)
52 redis 127.0.0.1:6379> zadd mysort 70 zs 80 ls 90 ww
53 (integer) 3
54 redis 127.0.0.1:6379> zrangebyscore mysort 0 100
55 1) "zs"
56 2) "ls"
57 3) "ww"
58 redis 127.0.0.1:6379> zrangebyscore mysort 0 100 withscore
59 (error) ERR syntax error
60 redis 127.0.0.1:6379> zrangebyscore mysort 0 100 withscores
61 1) "zs"
62 2) "70"
63 3) "ls"
64 4) "80"
65 5) "ww"
66 6) "90"
67 redis 127.0.0.1:6379> byscore mysort 0 100 withscores limit 0 2
68 1) "zs"
69 2) "70"
70 3) "ls"
71 4) "80"
72 redis 127.0.0.1:6379> zincrby mysort 3 ls
73 "83"
74 redis 127.0.0.1:6379> zscore mysort ls
75 "83"
76 redis 127.0.0.1:6379> zcount mysort 80 90
77 (integer) 2

Sorted-Set常用命令

    Sorted-Set使用情状
        大型在线娱乐积分排名榜
        创设索引数据

17、Redis特性
    切换数据库
        select 0
    移动key到某多个数据库
        move key 1
    开启事务
        multi
    提交业务
        exec
    回滚事务
        discard

18、Redis持久化
    持久化情势:
        LX570DB格局(配置以多少秒将数据存储到硬盘卡塔尔(英语:State of Qatar)
        AOF方式(读取日志文件卡塔尔(قطر‎
        无悠久化(缓存情势卡塔尔
        同不时候使用大切诺基DB和AOF

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注