Redis 数据类型--string

String(字符串)

redis命令用法:

SET key value    //存入字符串键值对

MSET key value [key2 value2 ...] //批量存入字符串键值对

SETNX key value   //存入一个不存在的键值对

GET key     //获取一个字符串键值

MGET key [key2 ...] //批量获取键值

DEL key   //删除一个键值

EXPIRE key seconds   //设置一个键值的过期时间

原子操作:

INCR key  // 将key中存储的数字的值加1

DECR key //将key中存储的值自减1

INCRBY key increment //将key存储的值加上increment

DECRBY key decrement //将key存储的值减去decrement

特别说明:

SET key value [EX seconds] [PX milliseconds] [NX|XX]

从 Redis 2.6.12 版本开始, SET 命令的行为可以通过一系列参数来修改:

  • EX seconds : 将键的过期时间设置为 seconds 秒。 执行 SET key value EX seconds 的效果等同于执行 SETEX key seconds value 。
  • PX milliseconds : 将键的过期时间设置为 milliseconds 毫秒。 执行 SET key value PX milliseconds 的效果等同于执行 PSETEX key milliseconds value 。
  • NX : 只在键不存在时, 才对键进行设置操作。 执行 SET key value NX 的效果等同于执行 SETNX key value 。
  • XX : 只在键已经存在时, 才对键进行设置操作。

Note

因为 SET 命令可以通过参数来实现 SETNX 、 SETEX 以及 PSETEX 命令的效果, 所以 Redis 将来的版本可能会移除并废弃 SETNX 、 SETEX 和 PSETEX 这三个命令。

String的应用场景:

单值缓存

  set key value

  get key

对象缓存:

1、set user:1 value(user:1的json格式的信息)

2、Mset user:1 value1 user:2 value2 ...(key.. value..)

分布式锁:

SETNX product:1001 true   //返回1代表获取锁成功

SETNX product:1001 true   //返回0代表获取锁成功,因为此时key已经存在

。。。执行业务操作

DEL product:1001       //业务执行完成,释放锁

set product:1001 true ex 10 nx   //相当于给setnx 设置了一个超时时间,防止程序意外挂死导致死锁。而且该操作更具有原子性,更加线程安全

猜你喜欢

转载自www.cnblogs.com/flycc/p/12670276.html