Redis常用方法实例

 /*
  * 常用实例
  * 字符操作:run1 -> run7
  * Map操作:run8
  * List操作:run9
  * Set操作:run10
  * 列表排序:run11
  */

 public static void run1(){//存取
     jedis.set("key" , "茶杯");
     System.out.println(jedis.get("key"));
 }
 
 public static void run2(){//覆盖
     jedis.set("key" , "茶杯");
     jedis.set("key" , "玻璃杯");
     System.out.println(jedis.get("key"));
 }
 
 public static void run3(){//删除
     jedis.set("key" , "茶杯");
     jedis.del("key");
     System.out.println(jedis.get("key"));
 }
 
 public static void run4(){//拼加
     jedis.set("key" , "茶杯");
     jedis.append("key", "沏好茶");
     System.out.println(jedis.get("key"));
 }
 
 public static void run5(){//加1操作
     jedis.set("key" , "1");
     //jredis.set("key" , "茶杯");//ERR value is not an integer or out of range
     jedis.incr("key");
     System.out.println(jedis.get("key"));
 }
 
 public static void run6(){//多值操作
     jedis.mset("key1" , "茶杯", "key2", "沏好茶");
     System.out.println(jedis.get("key1") + jedis.get("key2"));
 }
 
 public static void run7(){//是否存在key为"key"的记录
     jedis.set("key" , "茶杯");
     System.out.println(jedis.get("key"));
     System.out.println(jedis.exists("key"));
 }
 
 /*
  * Map操作的方法都是h开头:
  * hmset:往redis中存map
  * hmget:往redis中存map中的key对应的值
  * hlen:map中元素的个数
  * hkeys:map中key的集合
  * hvals:map中value的集合
  */

 public static void run8(){//存取map:hmset,hmget
  Map map = new HashMap();
  map.put("key1", "茶杯");
  map.put("key2", "沏好茶");
  map.put("key3", "润香");
  jedis.hmset("map", map);
  List rsmap = jedis.hmget("map", "key1", "key2", "key3", "key4");
  System.out.println(rsmap);
  
  jedis.hdel("map", "key2");//删除map中的某个键值 jredis.hdel("map", "key2", "key1");
  System.out.println(jedis.hmget("map", "key1", "key2", "key3", "key4"));//因为删除了,所以返回的是null
  System.out.println(jedis.hlen("map"));//map的键中存放的值的个数
  System.out.println(jedis.hkeys("map"));//map对象中的所有key
  System.out.println(jedis.hvals("map"));//map对象中的所有value
  
  Object map1[] = jedis.hkeys("map").toArray();
  for (Object key : map1) {
   System.out.println(key + ":" + jedis.hmget("map", key.toString()));
  }
 }

 /*
* List操作
* lpush:在key对应list的头部添加字符串元素

* lrange:返回存储在key列表的特定元素。偏移量开始和停止是从0开始的索引,0是第一元素(该列表的头部),1是列表的下一个元素。这些偏移量也可以是表示开始在列表的末尾偏移负数。例如,-1是该列表的最后一个元素,-2倒数第二个

* rpush:在key对应list的尾部添加字符串元素

* rpop:移除并返回列表 key 的尾元素

* lpop:移除并返回列表 key 的头元素

* 登陆:
* ./redis-cli -h IP地址 -a 密码 -p 6379
* 查看所有:
* keys *
* 查看List中有多少条数据:
* llen key -> 返回key对应list的长度
*/
public static void run9(){
jedis.del("list");
System.out.println(jedis.lrange("list", 0, -1));//从List中往外出取值
jedis.lpush("list", "茶杯");
jedis.lpush("list", "沏好茶");
jedis.lpush("list", "润香");
System.out.println(jedis.lrange("list", 0, -1));//从List中往外出取值
jedis.del("list");
jedis.rpush("list", "茶杯");
jedis.rpush("list", "沏好茶");
jedis.rpush("list", "润香");
System.out.println(jedis.lrange("list", 0, -1));//从List中往外出取值
System.out.println(jedis.rpop("list"));//移除并返回列表 key 的尾元素
System.out.println(jedis.lrange("list", 0, -1));//从List中往外出取值
}

1 . linsert -> 在key对应list的特定位置之前或之后添加字符串元素:

redis 127.0.0.1:6379> rpush mylist "one"
(integer) 1
redis 127.0.0.1:6379> rpush mylist "two"
(integer) 2
redis 127.0.0.1:6379> linsert mylist before "two" "there"
(integer) 3
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "one"
2) "there"
3) "two"
redis 127.0.0.1:6379>

2 . lset -> 设置list中指定下标的元素值(下标从0开始):

redis 127.0.0.1:6379> del mylist
(integer) 1
redis 127.0.0.1:6379> rpush mylist "one"
(integer) 1
redis 127.0.0.1:6379> rpush mylist "two"
(integer) 2
redis 127.0.0.1:6379> rpush mylist "three"
(integer) 3
redis 127.0.0.1:6379> lset mylist 0 "1"
OK
redis 127.0.0.1:6379> lset mylist -2 "2"
OK
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "1"
2) "2"
3) "three"
redis 127.0.0.1:6379>

3 . lrem -> 从key对应list中删除count个和value相同的元素:

① count>0时,按从头到尾的顺序删除

redis 127.0.0.1:6379> del mylist
(integer) 1
redis 127.0.0.1:6379> rpush mylist "one"
(integer) 1
redis 127.0.0.1:6379> rpush mylist "two"
(integer) 2
redis 127.0.0.1:6379> rpush mylist "three"
(integer) 3
redis 127.0.0.1:6379> rpush mylist "two"
(integer) 4
redis 127.0.0.1:6379> rpush mylist "two"
(integer) 5
redis 127.0.0.1:6379> lrem mylist 2 "two"
(integer) 2
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "one"
2) "three"
3) "two"
redis 127.0.0.1:6379>

② count<0时,按从尾到头的顺序删除
redis 127.0.0.1:6379> del mylist
(integer) 1
redis 127.0.0.1:6379> rpush mylist "one"
(integer) 1
redis 127.0.0.1:6379> rpush mylist "two"
(integer) 2
redis 127.0.0.1:6379> rpush mylist "three"
(integer) 3
redis 127.0.0.1:6379> rpush mylist "two"
(integer) 4
redis 127.0.0.1:6379> rpush mylist "two"
(integer) 5
redis 127.0.0.1:6379> lrem mylist -2 "two"
(integer) 2
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "one"
2) "two"
3) "three"
redis 127.0.0.1:6379>

③ count=0时,删除全部
redis 127.0.0.1:6379> del mylist
(integer) 1
redis 127.0.0.1:6379> rpush mylist "one"
(integer) 1
redis 127.0.0.1:6379> rpush mylist "two"
(integer) 2
redis 127.0.0.1:6379> rpush mylist "three"
(integer) 3
redis 127.0.0.1:6379> rpush mylist "two"
(integer) 4
redis 127.0.0.1:6379> rpush mylist "two"
(integer) 5
redis 127.0.0.1:6379> lrem mylist 0 "two"
(integer) 3
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "one"
2) "three"
redis 127.0.0.1:6379>

4 . ltrim -> 保留指定key 的值范围内的数据:

redis 127.0.0.1:6379> del mylist
(integer) 1
redis 127.0.0.1:6379> rpush mylist "0"
(integer) 1
redis 127.0.0.1:6379> rpush mylist "1"
(integer) 2
redis 127.0.0.1:6379> rpush mylist "2"
(integer) 3
redis 127.0.0.1:6379> rpush mylist "3"
(integer) 4
redis 127.0.0.1:6379> rpush mylist "4"
(integer) 5
redis 127.0.0.1:6379> rpush mylist "5"
(integer) 6
redis 127.0.0.1:6379> ltrim mylist 2 -1
OK
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "2"
2) "3"
3) "4"
4) "5"
redis 127.0.0.1:6379>

5. rpoplpush -> 从第一个list的尾部移除元素并添加到第二个list的头部,最后返回被移除的元素值,整个操作是原子的.如果第一个list是空或者不存在返回nil:

redis 127.0.0.1:6379> del mylist
(integer) 1
redis 127.0.0.1:6379> rpush mylist "0"
(integer) 1
redis 127.0.0.1:6379> rpush mylist "1"
(integer) 2
redis 127.0.0.1:6379> rpush mylist "2"
(integer) 3
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "0"
2) "1"
3) "2"
redis 127.0.0.1:6379> rpoplpush mylist mylist01
"2"
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "0"
2) "1"
redis 127.0.0.1:6379> lrange mylist01 0 -1
1) "2"
redis 127.0.0.1:6379>

6. lindex -> 返回名称为key的list中index位置的元素:

redis 127.0.0.1:6379> lrange mylist 0 -1
1) "0"
2) "1"
redis 127.0.0.1:6379> lindex mylist 0
"0"
redis 127.0.0.1:6379> lindex mylist 1
"1"
redis 127.0.0.1:6379> lindex mylist 2
(nil)
redis 127.0.0.1:6379>


 /*
  *set操作
  * sadd往集合里加值
  * srem从集合众删值
  * smembers获取所有的值
  * sismember判断是否为集的元素
  * srandmember随机取值
  * scard集合元素的个数
  */

 public static void run10(){
  jedis.del("set");
  jedis.sadd("set", "茶杯");
  jedis.sadd("set", "沏好茶");
  jedis.sadd("set", "润香");
  jedis.sadd("set", "删除");
  jedis.srem("set", "删除");
  System.out.println(jedis.smembers("set"));
  System.out.println(jedis.sismember("set", "删除"));
  System.out.println(jedis.srandmember("set"));
  System.out.println(jedis.scard("set"));
 }
 
 /*
  * 列表排序
  */

 public static void run11(){
  jedis.del("list");
  jedis.rpush("list", "茶杯");
  jedis.lpush("list", "沏好茶");
  jedis.lpush("list", "润香");
  System.out.println("取出所有值:" + jedis.lrange("list", 0, -1));//从List中往外出取值
  
  // 排序 
        /*
         * list中存字符串时必须指定参数为alpha,如果不使用SortingParams,而是直接使用sort("list"),
         * 会出现"ERR One or more scores can't be converted into double"
         */
        SortingParams sortingParameters = new SortingParams();
        sortingParameters.alpha();
        System.out.println("jredis.sort(\"list\",sortingParameters)=" + jedis.sort("list",sortingParameters)); 
        // 修改列表中单个值 
        jedis.lset("list", 0, "hello list!"); 
        // 获取列表指定下标的值 
        System.out.println("jredis.lindex(\"list\", 0)=" + jedis.lindex("list", 0)); 
        // 删除列表指定下标的值 
        //System.out.println(jredis.lrem("list", 0, "hello list")); 
        System.out.println(jedis.lrem("list", 0, "hello list!"));
        System.out.println("取出所有值:" + jedis.lrange("list", 0, -1));//从List中往外出取值
        // 删除区间以外的数据 
        System.out.println("jredis.ltrim(\"list\", 0, 0)=" + jedis.ltrim("list", 0, 0)); 
        System.out.println("取出所有值:" + jedis.lrange("list", 0, -1));//从List中往外出取值
 }

希望对你有帮助,祝你有一个好心情,加油!

若有错误、不全、可优化的点,欢迎纠正与补充!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值