总结redis--五种数据类型和一些通用的操作

五种数据类型: 

String----key-value  最大512M

List

set(集合)、

hash(类似java里的map)、

zset(有序集合)

String:  key-value的形式

get  key           //获取value
set  key  value    //设置值
Incr key           //+1        
decr  key          // -1  
Incrby key 3       // +3        

list: key  value1 value2  value3 ....

Lpush key value1  value2 value3      //从左加入值
Rpush   .....                        //从右加入值

Lpop:                               //从左移除元素并且输出
127.0.0.1:6379[1]> Lpush l0 1 2 3 4 5 6
(integer) 6
127.0.0.1:6379[1]> Lpop l0
"6"
127.0.0.1:6379[1]> lrange l0 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"

Hash:  key - key1-value

 

127.0.0.1:6379[1]> hset h1 name  123
(integer) 1
127.0.0.1:6379[1]> hget h1 name
"123"

set: key value1 value2 ....  参考集合set

127.0.0.1:6379[1]> sadd s0 1 2 2 3
(integer) 3
127.0.0.1:6379[1]> smembers s0
1) "1"
2) "2"
3) "3"

zset: key  number  value1 value2..  通过number来排序

127.0.0.1:6379[1]> zadd z0 1 2 3 4 5
(error) ERR syntax error
127.0.0.1:6379[1]> zadd z0 1  one 
(integer) 1
127.0.0.1:6379[1]> zadd z0 3 three
(integer) 1
127.0.0.1:6379[1]> zadd z0 2 two
(integer) 1
127.0.0.1:6379[1]> zrange z0 0  4
1) "one"
2) "two"
3) "three"

一些通用操作: 

Select   7   切换到第8库;      0 - 15
Keys   *    输出所有的key
Dbsize  查看信息的条数
FlushdB   清除当前库
Flushall   清除所有的库的
Move  key   2   将当前库的某个key剪切到2号库;

 

这里记录redis实现分布式锁的代码:

加锁

String result = jedis.set(key, value, "NX", "PX", expireMillis);
			if (result != null && result.equalsIgnoreCase("OK")) {
				flag = true;
			}

释放锁:

			String script = "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end";
			Object result = jedis.eval(script, Collections.singletonList(fullKey), Collections.singletonList(value));
			if (Objects.equals(UNLOCK_SUCCESS, result)) {
				flag = true;
			}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值