class="java" name="code">
public class Redis2 {
private static Jedis jedis = new Jedis("127.0.0.1",6379);
public static void main(String[] args){
//----------------------------String操作---------------------------------------------------
//byte[] bat = new byte[]{1,2,3};
//long lon=3L;
//jedis.set("shibin", "shibin");
//jedis.append("shibin111", "789");//如果key存在则最佳字符串,如果不存在则相当于set
//jedis.decr("shibin");//如果key不存在返回-1,如果存在并且为数字的话就减一,如果不是纯数字的话则会抛出不是纯数字的异常
//jedis.decrBy("shibin", lon);//指定减少的长度
//jedis.incr("shibin");//和decr相反,第二个参数是制定长度 如果是byte[] 就是把key的字符串转成byte【】数组形式
//jedis.incrBy("shibin", lon);//指定增加的长度
//jedis.getSet("shibin333", "222")//如果key存在就返回value值并对他设置新值,如果key不存在则返回-1并对他设置新值
//不好使
//jedis.strlen("shibin555")//返回字符串长度,如果不存在则返回-1,如果不是value不是string则报相应的错误信息
//jedis.setex("shibin55", 3, "shibin");//设置一个字符串在服务器的存活时间,第二个参数为秒数
//jedis.setnx("shibin", "123");//如果key不存在则保存key所对应的value,如果key存在则不做任何操作
//jedis.mset("shibin","sdf","shibin11","sdf");//同时set多个键值对
//jedis.msetnx(key, value)//可以设置多条,如果有其中一个key已经存在,那么操作全部回滚
//jedis.mget("shibin","shibin11");//同时取出多条,以数组形式展示[123,456]
//不好使
//jedis.setrange("shibin", 3, "bibib");//从第三个开始替换
//不好使
//jedis.getrange("shibin", 1, 2);//截取取值
//不好使
//jedis.setbit("shibin", 1, false);//设置在指定Offset上BIT的值,该值只能为1或0,在设定后该命令返回该Offset上原有的BIT值。如果指定Key不存在,该命令将创建一个新值,并在指定的Offset上设定参数中的BIT值。如果Offset大于Value的字符长度,Redis将拉长Value值并在指定Offset上设置参数中的BIT值,中间添加的BIT值为0。最后需要说明的是Offset值必须大于0。
//不好使
//jedis.getbit("shibin", 1);//返回在指定Offset上BIT的值,0或1。如果Offset超过string value的长度,该命令将返回0,所以对于空字符串始终返回0。
//System.out.println(jedis.get("shibin"));
//----------------------------List链表操作---------------------------------------------------
//jedis.lpush("shib1in1", "123");
//jedis.lpush("shib1in1", "789");
//jedis.lpush("shib1in1", "789");//以链表的形式往里添加先进后出
//不好使
//jedis.lpushx("shib1in1", "0");//仅有当参数中指定的Key存在时,该命令才会在其所关联的List Value的头部插入参数中给出的Value,否则将不会有任何操作发生。
//jedis.lrange("shib1in1", 0, 1);//根据key值取出list当中从第几个到第几个的值
//jedis.lpop("shib1in1");//根据key取出链表中第一个值
//jedis.llen("shib1in1");//key存在是返回链表中元素的数量,如果可以不存在则返回0,如果key值不是链表则返回相应的错误信息
//jedis.lrem("shib1in1", 1, "123");//删除制定数量的value值,从前往后删除,删除成功返回1,失败返回0
//jedis.lset("shib1in1", 1, "1223");//根据下标替换值,如果下标不存在或是key不存在会报相应的异常
//jedis.lindex("shib1in1", 1);//根据下标返回相应的value
//jedis.ltrim("shib1in1", 10, 11);//留指定下标的数据,只留下下标为10-11的元素其他全部删除,如果长度小于10则全部删除
//不好使
//jedis.linsert("shib1in1", LIST_POSITION.BEFORE, "3454", "3454");//在指定的元素前面或是后面插入一个元素
//jedis.rpush("shib1in1", "222");//从尾部插入数据
//jedis.rpushx("shib1in1", "222");//仅有当参数中指定的Key存在时,该命令才会在其所关联的List Value的尾部插入参数中给出的Value,否则将不会有任何操作发生。
//jedis.rpop("shib1in1");//返回并弹出指定Key关联的链表中的最后一个元素,即尾部元素,。如果该Key不存,返回nil。
//jedis.rpoplpush("shib1in1", "678");//从尾部开始删除,第二个参数没看出来有什么用
//System.out.println(jedis.lrange("shib1in1", 0, 7));
//System.out.println(jedis.rpoplpush("shib1in1", "678"));
//System.out.println(jedis.lrange("shib1in1", 0, 7));
//----------------------------Hash操作---------------------------------------------------
//jedis.hset("shibin5", "name", "123");//为指定的Key设定Field/Value对,如果Key不存在,该命令将创建新Key以参数中的Field/Value对,如果参数中的Field在该Key中已经存在,则用新值覆盖其原有值。
//jedis.hget("shibin5", "name");//返回指定Key中指定Field的value值。
//jedis.hexists("shibin5", "name");//判断key值是否存在,返回true或是false
//System.out.println(jedis.hset("shibin5", "name", "shibin"));
//System.out.println(jedis.hset("shibin5", "age", "25"));
//jedis.hlen("shibin5");//获取该Key所包含的Field的数量。
//jedis.hdel("shibin5", "name");//删除指定的field(对象中的属性)
//jedis.hsetnx("shibin5", "name", "shibin1");//只有当参数中的Key或Field不存在的情况下,为指定的Key设定Field/Value对,否则该命令不会进行任何操作。
//jedis.hincrBy("shibin5", "name", 3);//对指定的属性进行加减操作,如果key不存在或value不是整数类型会报错误信息,否则进行加减操作
//jedis.hgetAll("shibin5");//以json的格式返回一个对象
//jedis.hkeys("shibin5");//返回指定key的所有fields名
//jedis.hvals("shibin5");//返回指定key的所有value值
//jedis.hmget("shibin5", "name","age");//根据key返回指定key对应的value,key不存在所有的则返回null,field不存在则改字段返回null
//jedis.hmset("shibin5", map);//对一个key设置多个dield-value
//System.out.println(jedis.hget("shibin5", "name"));
//Map<String,String> map = new HashMap<String,String>();
//map.put("shengao", "178");
//map.put("tizhong", "80kg");
//System.out.println(jedis.hmset("shibin5", map));
//System.out.println(jedis.hkeys("shibin5"));
//----------------------------set操作---------------------------------------------------
//jedis.sadd("shibinset", "444");
//jedis.sadd("shibinset3", "888");//添加,如果执行该命令之前,该Key并不存在,该命令将会创建一个新的Set,此后再将参数中的成员陆续插入。如果该Key的Value不是Set类型,该命令将返回相关的错误信息。
//jedis.scard("shibinset");//获取Set中成员的数量。
//jedis.sismember("shibinset", "111");//判断参数中指定成员是否已经存在于与Key相关联的Set集合中。
//jedis.smembers("shibinset");//获取set集合中所有的成员,如果key不存在会报空
//jedis.spop("shibinset");//随机删除set集合中的某一成员,并返回所删除的成员(搞不懂这个功能能干嘛)
//jedis.srem("shibinset", "111");//删除set集合中指定的成员,值存在返回1不存在返回0
//jedis.srandmember("shibinset");//在set集合中随机取一个值,但是不会删除该值[444, 222, 777, 111, 333, 555, 666]
//jedis.smove("shibinset", "shibinset1", "111");//将shibinset集合中111成员移动到shibinset1集合中,如果shibinset1集合不存在则会创建,如果shibinset1不是Set,将返回相关的错误信息。
//jedis.sdiff("shibinset","shibinset1","111");三个参数都为集合key,用第一个集合和后面所有集合比较,返回其他集合没有的成员(它会把从第二个开始的所有集合看成是一个整体)
//jedis.sdiffstore("shibinset", "shibinset1","111");//拿第二个key和后面的key比较如果第二个key里面有的成员而后面集合中没有该成员,则会把这些成员添加到第一个key中(如果第一个key以前有值也会被清空)
//jedis.sinter("shibinset3", "shibinset1","shibinset2");//第一个key拿成员去和后面所有的key去比较,只有这几个集合中都有的元素才会被返回
//jedis.sinterstore("shibinset3", "shibinset1","shibinset2");//返回交集数,返回从第二个开始后面所有集合的交集,并把交集存储到第一个set中
//jedis.sunion("shibinset3", "shibinset1","shibinset2");//返回所有集合中的成员
//jedis.sunionstore("shibinset3", "shibinset1","shibinset2");//和suion不同的是,它会把从第二个集合开始的所有成员存储到第一个集合中,如果第一个集合存在则会被覆盖
//System.out.println(jedis.smembers("shibinset3"));
//System.out.println(jedis.smembers("shibinset1"));
//System.out.println(jedis.smembers("shibinset2"));
//System.out.println(jedis.sunionstore("shibinset3", "shibinset1","shibinset2"));
//System.out.println(jedis.smembers("shibinset3"));
//System.out.println(jedis.smembers("shibinset1"));
//System.out.println(jedis.smembers("shibinset2"));
//----------------------------Sorted-Sets操作---------------------------------------------------
//jedis.zadd("shibinsorted", 12, "jiangjian");//添加,如果在添加时参数中的某一成员已经存在,该命令将更新此成员的分数为新值,同时再将该成员基于新值重新排序。如果键不存在,该命令将为该键创建一个新的Sorted-Sets Value,并将score/member对插入其中。如果该键已经存在,但是与其关联的Value不是Sorted-Sets类型,相关的错误信息将被返回。
//jedis.zcard("shibinsorted");//获取与该Key相关联的Sorted-Sets中包含的成员数量。
//jedis.zcount("shibinsorted", 11, 11);//根据区间来统计数量(min <= score <= max);
//jedis.zincrby("shibinsorted", 100, "guoliang");//给指定的成员加分数,成员存在则累加,不存在则创建
//jedis.zrange("shibinsorted", 0, 11);//该命令返回顺序在参数start和stop指定范围内的成员,这里start和stop参数都是0-based,即0表示第一个成员,-1表示最后一个成员。如果start大于该Sorted-Set中的最大索引值,或start > stop,此时一个空集合将被返回。如果stop大于最大索引值,该命令将返回从start到集合的最后一个成员
//jedis.zrangeByScore("shibinsorted", 0, 111);//该命令将返回分数在min和max之间的所有成员,即满足表达式min <= score <= max的成员,其中返回的成员是按照其分数从低到高的顺序返回,如果成员具有相同的分数,则按成员的字典顺序返回。可选参数LIMIT用于限制返回成员的数量范围。可选参数offset表示从符合条件的第offset个成员开始返回,同时返回count个成员。
//jedis.zrank("shibinsorted", "jiangjian");//返回成员排在第几位
//jedis.zrem("shibinsorted", "shibin");//删除成员,返回删除成员的数量
//System.out.println(jedis.zrevrange("shibinsorted", 1, 111));
//System.out.println(jedis.zrange("shibinsorted", 0, 111));
}
}
待续.......