澳门新蒲京娱乐

图片 6
说说lock到底锁谁

集成环境下搭建

【澳门新蒲京娱乐】命令介绍,redis的基本命令整理

redis 的中国共产党第五次全国代表大会骨干类型的简便命令

对key–value中的value的有些简练命令

    keys * 查询redis中的全数key
    exists key 查询key是还是不是留存
    flushdb 清空当前库
    flushall 清空全数库 总共1五个库,暗中认可0号库
    select(库号0-15) 选择库
    dbsize 重临当前库中有微微key
    randomkey 随机再次回到二个key
    ttl 获得三个key还剩下多少时间
    expire 设置三个key的实用时间
    move(key,dbindex) 把当前key转移到制定库
    del key 删除三个key
    type key[hhy]      重临当前key的类型【四种】
    rename[了解]

  

持久化

  • save:将数据同步保存到磁盘
  • bgsave:将数据异步保存到磁盘
  • lastsave:再次回到上次成事将数据保存到磁盘的Unix时戳
  • shundown:将数据同步保存到磁盘,然后关门服务

远程服务调节

  • info:提供服务器的音信和总计
  • monitor:实时转储收到的央浼
  • slaveof:更换复制攻略设置
  • config:在运行时安插Redis服务器

对String操作的下令

  • set(key,
    value):给数据库中名称叫key的string赋予值value
  • get(key):再次回到数据库中名为key的string的value
  • getset(key,
    value):给名为key的string赋予上一遍的value
  • mget(key一, key二,…,
    key N):再次来到库中多少个string的value
  • setnx(key,
    value):添加string,名称为key,值为value
  • setex(key, time, value):向库中增加string,设定过期光阴time
  • mset(key N, value
    N):批量安装多少个string的值
  • msetnx(key N,
    value N):假设全数名为key i的string都不设有
  • incr(key):名称为key的string增1操作
  • incrby(key,
    integer):名称为key的string增加integer
  • decr(key):名称为key的string减1操作
  • decrby(key,
    integer):名称为key的string减少integer
  • append(key,
    value):名为key的string的值增大value
  • substr(key, start,
    end):重回名称叫key的string的value的子串

对List操作的通令

  • rpush(key,
    value):在名为key的list尾加多一个值为value的因素
  • lpush(key,
    value):在称呼为key的list头加多贰个值为value的 成分
  • llen(key):重返名称叫key的list的长度
  • lrange(key, start,
    end):重返名为key的list中start至end之间的因素
  • ltrim(key, start,
    end):截取名为key的list
  • lindex(key,
    index):重回名叫key的list中index地点的因素
  • lset(key, index,
    value):给名叫key的list中index地方的要素赋值
  • lrem(key, count,
    value):删除count个key的list中值为value的元素
  • lpop(key):重返并剔除名字为key的list中的首成分
  • rpop(key):重临并剔除名叫key的list中的尾成分
  • blpop(key1, key2,…
    key N, timeout):lpop命令的block版本。
  • brpop(key1, key2,…
    key N, timeout):rpop的block版本。
  • rpoplpush(srckey,
    dstkey):重回并剔除名叫srckey的list的尾成分,并将该因素增添到名称叫dstkey的list的底部

对Set操作的通令

  • sadd(key,
    member):向名字为key的set中添欧成分member
  • srem(key,
    member) :删除名叫key的set中的成分member
  • spop(key) :随机重临并删除名为key的set中三个因素
  • smove(srckey,
    dstkey, member) :移到集结成分
  • scard(key) :重回名字为key的set的基数
  • sismember(key,
    member) :member是或不是是名称叫key的set的成分
  • sinter(key1,
    key2,…key N) :求交集
  • sinterstore(dstkey,
    (keys)) :求交集并将交织保存到dstkey的集中
  • sunion(key1,
    (keys)) :求并集
  • sunionstore(dstkey,
    (keys)) :求并集并将并集保存到dstkey的成团
  • sdiff(key1,
    (keys)) :求差集
  • sdiffstore(dstkey,
    (keys)) :求差集并将差集保存到dstkey的聚合
  • smembers(key) :再次回到名字为key的set的具备因素
  • srandmember(key) :随机回到名字为key的set的3个因素

 

Sorted-sort【zset】集合  

 

     zset 是sets
3个提拔 ,是铁定的事情聚焦,那1质量在加上修改成分的时候可以钦赐,
    每一遍内定后,zset
会自动清洗按心的值调解顺序,能够精通为两列的mysql表
    1两存value,壹列存顺序,key精通为zset名字

    zadd
向聚聚焦加多一个要素 假如值存在则更新顺序号
    zadd myset 1
one
    zadd myset 2
two
    zadd myset 3
three

    2 zrange

    zrange myset
0 -1 withscores withscores显示 顺序号

    3 zrem
删除二个要素
    zrem myset
two

    4 zincrby
对序号进行充实
     zincrby
myset 3 one 顺序号扩大二个
       zincrby
myset -3 one 顺序号减弱一个

    五 zrank
遵照索引排序 ,重临索引值

    zrank myset
one

    6 zrevrank
再次回到名称叫key 的zset 中member 成分的排名

      (根据score从大到小的排序)即下标
      zrevrank
myset two

    7 zrevrange
降序排序

    8
zrangebyscore
    

    zrangebyscore
myset 2 3 withscores
    这里的2 和3
是顺序 不是inex

    9
zcount

    重临score在给定区间的多寡
    zcount myset
2 4

    10 zcard
重返全数因素个数
    zcard
myset

    1壹zremrangebyrank 删除群集中排名在给定区间的成分

    依照索引删除

    zremrangebyrank myset 1 1
    一意味索引

    12zremrangebyscore 根据顺序删除

    zremrangebyscore myset 2 5

 

对Hash操作的吩咐

Hash是1种数据结构,一般翻译做“散列”,也可以有直接音译为“哈希”。Redis hash
是叁个string类型的田野和value的映射表。它特别适合用于存款和储蓄对象。同将对象的每一种字段存成单个string类型,存款和储蓄为hash类型会占用更加少的内部存款和储蓄器,并且有利于的存取整个对象。)

  • hset(key, 田野同志,
    value):向名为key的hash中添比索素田野
  • hget(key,
    田野):重返名为key的hash中田野先生对应的value
  • hmget(key,
    (田野同志s)):再次来到名叫key的hash中田野(field) i对应的value
  • hmset(key,
    (田野s)):向名叫key的hash中添日币素田野先生 
  • hincrby(key,
    田野(field), integer):将名为key的hash中田野先生的value扩充integer
  • hexists(key,
    田野):名称叫key的hash中是不是存在键为田野的域
  • hdel(key,
    田野):删除名字为key的hash中键为田野先生的域
  • hlen(key):重回名称叫key的hash6月素个数
  • hkeys(key):再次回到名为key的hash中全部键
  • hvals(key):重回名叫key的hash中全部键对应的value
  • hgetall(key):再次回到名叫key的hash中有着的键(田野)及其对应的value

 

 

代码实例:redis的CU昂科雷D操作

 

  1 package deifeng.testRedis;
  2 
  3 import java.util.HashMap;
  4 import java.util.List;
  5 import java.util.Set;
  6 
  7 import org.junit.Test;
  8 
  9 import redis.clients.jedis.BinaryClient.LIST_POSITION;
 10 import redis.clients.jedis.Jedis;
 11 import redis.clients.jedis.Tuple;
 12 
 13 /**
 14  * 
 15  * @author Administrator
 16  * timer:2017年2月18日下午11:02:24
 17  * intro:TODO
 18  */
 19 public class TestCRUD {
 20     //创建redis 的客户端连接,绑定主机和端口号
 21     private static String host="127.0.0.1";
 22     private static int port =6379;
 23     private Jedis jedis = TestCRUD.getRedisUtil(host, port);
 24     
 25     
 26     
 27     //测试连接
 28     public void  testConn(){
 29         System.out.println(jedis);
 30     }
 31     
 32     /**
 33      * 测试redis的五大基本类型操作
 34      */
 35     /**
 36      * String 类型的简单命令
 37      * 
 38      *    一 -------多
 39      *    set      mset
 40      */
 41     @Test
 42     public  void testString(){
 43         //获取jedis对象    返回key=hhy2的type类型
 44         /*String type = jedis.type("hhy2");
 45         System.out.println(type);*/
 46         /**
 47          * 存储一个数据
 48          * 
 49          * set   -------mset
 50          */
 51         //jedis.flushDB();       flushAll
 52         String key1 = jedis.set("hhy", "hhy"); 
 53         System.out.println(jedis.get("hhy"));
 54         //是在key不存在,才会执行set操作,如果key存在,则此操作无效,返回值1代表成功,0代表失败
 55         //setnx  ------msetnx
 56         Long setnx = jedis.setnx("hhy1", "zs");
 57         System.out.println(setnx);//1   代表插入的key在redis库中不存在
 58         //setex  ---- mstex
 59         jedis.setex("hhy", 100, "zsq");//100有效期   
 60         
 61         Long tt = jedis.ttl("hhy");
 62         System.out.println(tt);
 63         /**
 64          * 存储多个数据
 65          * mget  key1 value1  key2 value2...
 66          * 类似于set对一个数据存储的语法
 67          */
 68         
 69         
 70         /**
 71          * getrange
 72          * getrange key star end
 73          *
 74          *    解释:获取存储在key中value的字串。字符串的截取有star和end决定,字符串的第一个字符编号是0,第二个是1,
 75          *    一次类推;如果是负数,-1是最后一个字符,-2是倒数第二个字符,一次类推。
 76          *
 77          *    setrange
 78          *  用value重写key值的一部分,偏移量由offset指定
 79          *  
 80          */
 81         
 82         jedis.set("test", "test123456");
 83         System.out.println(jedis.getrange("test", 2, 5));
 84         
 85         
 86         /**
 87          * getset
 88          */
 89         String getset = jedis.getSet("hhy", "123");
 90         System.out.println(getset);
 91         
 92         Long ll = jedis.append("hhy", "123");//添加以后的长度
 93         
 94         
 95         /**
 96          * 递增/减
 97          * incr / incrby   ++   /  decr  /decrby  --
 98          */
 99         Long incr = jedis.incr("21");
100         System.out.println(incr);
101         
102         /**
103          * 删除key
104          * del
105          */
106         jedis.del("hhy");
107         System.out.println("=====================");
108         Set<String> keys = jedis.keys("*");
109         for (String string : keys) {
110             System.out.println(string +"---->"+jedis.get(string));
111         }
112         
113     }
114     
115     
116     
117     /**
118      * redis  ---- List
119      * lpush  rpush  linsert  添加命令
120      * lpop   rpop            删除命令
121      * lrange llen   lindex   查询命令
122      * lset                   修改命令
123      * rpoplpush              两个列表A,B,将A列表的尾元素添加到B列表的头元素中
124      */
125     @Test
126     public void testList(){
127         jedis.flushDB();//清空当前库
128         //添加一个list集合
129         /**
130          * 如果保证顺序
131          * left  降序
132          * right  顺序
133          */
134         jedis.lpush("zs", "3","2","1");//左侧插入一个list集合
135         jedis.rpush("li", "7","8","9");
136         /*
137         //遍历li集合
138         List<String> list = jedis.lrange("li", 0, -1);
139         for (String str : list) {
140             System.out.println(str);
141         }
142         
143         System.out.println("============");
144         //linsert插入一条数据
145         jedis.linsert("zs", LIST_POSITION.AFTER, "2", "12");
146         //遍历li集合
147         List<String> zs = jedis.lrange("zs", 0, -1);
148         for (String str : zs) {
149             System.out.println(str);
150         }
151         
152         //del
153         *//**
154          * lpop  rpop  分别代表是从左|右侧删除一条数据
155          * 并且把删除的数据值返回过来
156          *//*
157         System.out.println(jedis.lpop("zs"));
158         
159         
160         *//**
161          * 查询命令  lindex  llen
162          *//*
163         
164         System.out.println(jedis.lindex("li", 1));
165         System.out.println(jedis.lset("zs", 0, "hhy"));
166         
167         */
168         jedis.rpoplpush("li", "zs");
169         System.out.println("--------------");
170         List<String> zs1 = jedis.lrange("zs", 0, -1);
171         for (String string : zs1) {
172             System.out.println(string);
173         }
174     }
175     
176     
177     
178     /**
179      * Redis   --   Set
180      */
181     @Test
182     public void testSet(){
183         jedis.flushDB();
184         jedis.sadd("ss", "1","2","3");
185         System.out.println(jedis.smembers("ss"));
186         //在客户端命令中。存在是1  不存在是0
187         System.out.println(jedis.sismember("ss", "2"));
188         //set集合 的大小
189         System.out.println(jedis.scard("ss"));
190         //返回set集合中随机数据
191         System.out.println(jedis.srandmember("ss"));
192         //随即返回redis  中的key
193         System.out.println(jedis.randomKey());
194         
195         /**
196          * spop随机删除set集合的一个数据
197          * 集合之间的 操作
198          * 
199          * sinter   交集
200          * sunion   并集
201          * sdiff    差集
202          * smove    把  1  集合转移到 2中
203          * >smove youSet mySet 4  ---将youSet中的数据4移除的同时将数据4添加到mySet中
204          */
205         jedis.sinter("可扩展的key,求交集");
206         jedis.sunion("可扩展的key,求并集");
207         jedis.sdiff("可扩展的key,求差集");
208         
209     }
210     
211     /**
212      * sorted-sort
213      * 
214      * zadd 一次只能添加一个
215      */
216     @Test
217     public void testSortedSort(){
218         jedis.flushDB();
219         jedis.zadd("hhy", 100, "zs");
220         jedis.zadd("hhy", 101, "zs1");
221         jedis.zadd("hhy", 102, "zs2");
222         jedis.zadd("hhy", 103, "zs3");
223         //获取zset集合中的值  ---  是一个集合   asc
224         /**zrange       asc
225          * zrevrange    desc
226          */
227         Set<String> set = jedis.zrange("hhy", 0, -1);
228         for (String str : set) {
229             //获取分数
230             System.out.println(str);
231             //通过这个集合中的值,查询每一个值所对应的分数
232             Double zscore = jedis.zscore("hhy", str);
233             System.out.println(zscore);
234         }
235         //可以直接获取到值--分数的对应关系,封装到tuple对象中
236         Set<Tuple> set2 = jedis.zrangeWithScores("hhy", 0, -1);
237         for (Tuple tuple : set2) {
238             System.out.println(tuple.getScore()+" --->"+tuple.getElement());
239         }
240         //查看zset集合中的数据zs1是第一名
241         Long zrank = jedis.zrank("hhy", "zs1");
242         System.out.println(zrank);
243     }
244     
245     /**
246      * hash类型的操作
247      * 基本命令的操作
248      */
249     @Test
250     public void testHash(){
251         /**
252          * 如何在user中再存一个对象?
253          */
254         jedis.hset("user", "name", "hhy");
255         jedis.hset("user", "age", "25");
256         //jedis.hmset("u", new HashMap<String,String>());
257         System.out.println(jedis.hget("user", "name"));
258         //查询hash中的所有filed和value
259         jedis.hkeys("user");
260         jedis.hvals("user");
261         //s设置多个值和获取多个值  hmset   hmget
262         
263         
264         //获取所有的filed
265         jedis.hgetAll("user");
266         //当前有多少数据
267         jedis.hlen("user");
268     }
269     
270     /**
271      * 创建redis的连接对象
272      * @param host  主机
273      * @param port  端口号
274      * @return  jedis对象
275      */
276     public static Jedis getRedisUtil(String host,int port){
277         return new Jedis(host,port);
278     }
279     
280     
281 }

 

hash完结轻易购物车

package deifeng.testRedis;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import redis.clients.jedis.Jedis;

/**
 * 
 * @author Administrator
 * timer:2017年2月21日上午9:54:33
 * intro:使用hash类型模拟购物车的实现
 */
public class ShoppingGoods {
    //定义主机和端口号
    private static String host = "127.0.0.1";
    private static int port = 6379;
    //hash的那个key的名字
    private static String hash_name = "huhy";


    public static void main(String[] args) {
        //客户端连接redis
        Jedis jedis = new Jedis(host, port);

        Map<String, String> hash_goods = new HashMap<String, String>();
        //添加到hash类型中数据
        hash_goods.put("电视", "3");
        hash_goods.put("书", "4");
        hash_goods.put("大风车", "6");
        hash_goods.put("衣服", "10");

        jedis.hmset(hash_name, hash_goods);

        //当前有多少数据
        //System.out.println(jedis.hlen(hash_name)+"个数据");

        //遍历数据
        List<String> list = new ArrayList<String>();

        Set<String> sets = jedis.hkeys(hash_name);//查询key中出所有的fileds
        Iterator<String> fileds = sets.iterator();
        while(fileds.hasNext()){
            //System.out.println(fileds.next().toString());
            //通过filed找到对应的value
            String filed = fileds.next();
            String value = jedis.hget(hash_name, filed);
            System.out.println(filed+"------->"+value);

            //把查询出的filed存储到list集合中
            list.add(filed);
        }

        //llist集合中保存的是数据的filed
        /**
         * 通过hmget的可以取多个值
         * hmget(key   filed )  ----> value
         */
         List<String> ll = jedis.hmget(hash_name, list.get(0), list.get(1), list.get(2),list.get(3));  
         System.out.print(ll +" ");  

         //hgetall命令  
         Map<String, String> map = jedis.hgetAll(hash_name);  
         Set<Entry<String, String>> ss = map.entrySet();
         Iterator<Entry<String, String>> ii = ss.iterator();
         for (Entry<String, String> entry : ss) {
            System.out.println(entry.getKey() +"--->"+entry.getValue());
         }
         //切断客户端连接   释放资源

         jedis.disconnect();
    }
}

 

redis
的中国共产党第五次全国代表大会宗旨类型的简短命令

对key–value中的value的有的简便命令

    keys * 查询redis中的全数key
    exists key 查询key是还是不是留存
    flushdb 清空当前库
    flushall 清空全数库 总共16个库,暗许0号库
    select(库号0-15) 选择库
    dbsize 再次来到当前库中有微微key
    randomkey 随机再次回到2个key
    ttl 获得三个key还剩下多少时间
    expire 设置一个key的一蹴而就时间
    move(key,dbindex) 把当下key转移到制定库
    del key 删除3个key
    type key[hhy]      再次回到当前key的品种【七种】
    rename[了解]

  

持久化

  • save:将数据同步保存到磁盘
  • bgsave:将数据异步保存到磁盘
  • lastsave:再次回到上次成事将数据保存到磁盘的Unix时戳
  • shundown:将数据同步保存到磁盘,然后停业服务

长途服务调节

  • info:提供服务器的新闻和总结
  • monitor:实时转储收到的央浼
  • slaveof:改换复制计谋设置
  • config:在运行时布署Redis服务器

对String操作的通令

  • set(key,
    value):给数据库中名称叫key的string赋予值value
  • get(key):重回数据库中名称叫key的string的value
  • getset(key,
    value):给名字为key的string赋予上2回的value
  • mget(key一,
    key二,…, key N):重返库中八个string的value
  • setnx(key,
    value):添加string,名称为key,值为value
  • setex(key, time, value):向库中加多string,设定过期时间time
  • mset(key N,
    value N):批量安装四个string的值
  • msetnx(key N,
    value N):假若拥著名称叫key i的string都不设有
  • incr(key):名称为key的string增1操作
  • incrby(key,
    integer):名称为key的string增加integer
  • decr(key):名称为key的string减1操作
  • decrby(key,
    integer):名称为key的string减少integer
  • append(key,
    value):名称叫key的string的值增大value
  • substr(key,
    start, end):重临名字为key的string的value的子串

对List操作的一声令下

  • rpush(key,
    value):在称呼为key的list尾加多2个值为value的因素
  • lpush(key,
    value):在称呼为key的list头加多三个值为value的 成分
  • llen(key):重临名字为key的list的长度
  • lrange(key,
    start, end):再次回到名叫key的list中start至end之间的要素
  • ltrim(key,
    start, end):截取名为key的list
  • lindex(key,
    index):再次来到名字为key的list中index地方的要素
  • lset(key, index,
    value):给名字为key的list中index地方的要素赋值
  • lrem(key, count,
    value):删除count个key的list中值为value的元素
  • lpop(key):再次来到并删除名字为key的list中的首成分
  • rpop(key):重回并剔除名字为key的list中的尾成分
  • blpop(key1,
    key2,… key N, timeout):lpop命令的block版本。
  • brpop(key1,
    key2,… key N, timeout):rpop的block版本。
  • rpoplpush(srckey,
    dstkey):重回并剔除名为srckey的list的尾成分,并将该因素增添到名为dstkey的list的头顶

对Set操作的一声令下

  • sadd(key,
    member):向名为key的set中添韩元素member
  • srem(key,
    member) :删除名叫key的set中的成分member
  • spop(key) :随机回到并剔除名字为key的set中三个因素
  • smove(srckey,
    dstkey, member) :移到群集成分
  • scard(key) :重临名字为key的set的基数
  • sismember(key,
    member) :member是还是不是是名为key的set的成分
  • sinter(key1,
    key2,…key N) :求交集
  • sinterstore(dstkey,
    (keys)) :求交集并将交织保存到dstkey的联谊
  • sunion(key1,
    (keys)) :求并集
  • sunionstore(dstkey,
    (keys)) :求并集并将并集保存到dstkey的集合
  • sdiff(key1,
    (keys)) :求差集
  • sdiffstore(dstkey,
    (keys)) :求差集并将差集保存到dstkey的汇聚
  • smembers(key) :再次回到名称叫key的set的具备因素
  • srandmember(key) :随机重临名为key的set的3个因素

 


Sorted-sort【zset】集合  

 

     zset 是sets
1个升任 ,是雷打不动集中,那一属性在加多修改成分的时候能够钦赐,

    每一趟钦命后,zset
会自动冲洗按心的值调节顺序,能够明白为两列的mysql表

    壹两存value,一列存顺序,key明白为zset名字
    zadd
向聚聚集增添一个成分 若是值存在则更新顺序号

    zadd myset
1 one

    zadd myset
2 two

    zadd myset
3 three

    2 zrange
    zrange
myset 0 -1 withscores withscores显示 顺序号

    三 zrem
删除二个成分

    zrem myset
two

    肆 zincrby
对序号实行充实

     zincrby
myset 3 one 顺序号扩大一个

       zincrby
myset -3 one 顺序号缩短1个

    伍 zrank
依照索引排序 ,再次回到索引值

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图