算法|redis 数据类型——key String Set

Redis是一种面向“键/值”对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景。它起步较晚,发展迅速redis相对于Memcached 来说, redis 支持的数据类别非常多, 如: key string set hashSet sortedSet list

  • Keys
    保存的是key-value db,一般是存贮一些简单静态的时候 key 尽量不要太长,不然存贮会影响key 值查询同时也是影响key存贮空间;

del删除指定key dump 序列号key 值 expire 设置失效时间(时间毫秒) expireat设置到时间点失效 exists key设置存在key值 persist清除失效时间 pexpire清除定点失效----------TTL 当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以秒为单位,返回 key 的剩余生存时间。127.0.0.1:6379> TTL myname (integer) -1----------TYPE 判断返回值类型 none (key不存在) string (字符串) list (列表) set (集合) zset (有序集) hash (哈希表)127.0.0.1:6379> type myname string

  • String– 字符串
APPEDD 如果 key 已经存在并且是一个字符串,value 追加到 key 原来的值的末尾。 如果 key 不存在,简单地将给定 key 设为 value 127.0.0.1:6379> append mygirl aliv (integer) 4 127.0.0.1:6379> get mygirl "aliv" 127.0.0.1:6379> ----------DECR key key 中储存的数字值减一127.0.0.1:6379> set money 50000000000 OK 127.0.0.1:6379> decr money (integer) 49999999999----------DECRBY key decrement 将 key 所储存的值减去减量 decrement 如key 不存在,那么 key 的值会先被初始化为 0 127.0.0.1:6379>exists page (integer) 0 127.0.0.1:6379> decrby page 10 (integer) -10---------- GET key 返 key 所关联的字符串值 如 key 不存在那么返回特殊值 nil ---------- GETRANGE key start end 返key 中字符串值的子字符串,字符串的截取范围 127.0.0.1:6379> get myname "eaosn_hoo" 127.0.0.1:6379> getrange myname 0 4 "eaosn"---------- GETSET key value 返回key最原始的值,如没有返回nil 127.0.0.1:6379> getset db redis (nil) 127.0.0.1:6379> get db "redis" 127.0.0.1:6379> getset db mysql "redis"---------- NCR key key 中储存的数字值增一 如key 不存在,那么 key 的值会先被初始化为 0 127.0.0.1:6379> incr page (integer) -9 127.0.0.1:6379> incr page (integer) -8---------- INCRBY key increment key 指定提升值 127.0.0.1:6379> incr page (integer) -8 127.0.0.1:6379> incrby page 20 (integer) 12---------- MSET key value [key value ...](注:原子操作) 同时设置一个或多个 key-value 对。 如果 key 已经存在,MSET 会用新值覆盖原来值127.0.0.1:6379> mset myname 'eason' myage '24' mygirl 'alige' OK 127.0.0.1:6379> keys * 1) "myage" 2) "myname" 3) "mygirl"---------- MGET key [key ...](注:原子性操作) 返回所有(一个或多个)给定 key 的值。 如某个 key 不存在,那么这个 key 返回特殊值 nil 127.0.0.1:6379> mget myage myname mygirl 1) "24" 2) "eason" 3) "alige"---------- MSETNX key value [key value ...] 设置一个或多个 key-value 对,必须所有给定 key都不存在,否则MSETNX 也会拒绝执行所有操作。 127.0.0.1:6379> mget myage myname mygirl 1) "24" 2) "eason" 3) "alige" 127.0.0.1:6379> msetnx myage '25' mybook 'android ios' (integer) 0---------- SET key value [EX seconds] [PX milliseconds] [NX|XX] 会key设置value ex : 设置失效时间seconds 秒 px : 设置失效时间milliseconds 毫秒nx : 只有key 不存在再可以赋值 xx : 不管值在于否都覆盖127.0.0.1:6379> set company mc.cn ex 10086 px 50000 OK 127.0.0.1:6379> ttl company (integer) 42----------SETEX key seconds value 如果key存在覆盖 SET key value EXPIRE key seconds# 设置生存时间---------- SETNX key value 只有key 不存在再可以写入否则拒绝写入 127.0.0.1:6379> exists myname (integer) 1 127.0.0.1:6379> setnx myname jack (integer) 0---------- STRLEN key 返回 key 字符串值的长度,找不到则返回0 127.0.0.1:6379> STRLEN nonexisting (integer) 0

  • Set – 集合
SADD key member [member ...] 添加key到集合中 如果集合已经将忽略;如果没有集合将创建集合并存贮key ##添加单个数据## 127.0.0.1:6379> sadd word job (integer) 1 ##添加重复数据## 127.0.0.1:6379> sadd word job (integer) 0 ##添加多个数据## 127.0.0.1:6379> sadd word nagihoo (integer) 2 127.0.0.1:6379> SMEMBERS word 1) "hoo" 2) "nagi" 3) "job"---------- SCARD key 集合 key 集合中元素数量 127.0.0.1:6379> SMEMBERS word 1) "hoo" 2) "nagi" 3) "job" 127.0.0.1:6379> scard word (integer) 3---------- SDIFF key [key ...] 返回一个集合的全部成员 127.0.0.1:6379> sdiff word 1) "job" 2) "girl" 3) "fiends"---------- SINTER key 返回一个集合的全部成员,该集合是所有给定集合的交集 127.0.0.1:6379> sinter word 1) "fiends" 2) "girl" 3) "job"---------- SISMEMBER key value 判断是否value 是否存在于key 集合中,如果是返回1 否则返回0 127.0.0.1:6379> sinter word 1) "fiends" 2) "girl" 3) "job"---------- SMEMBERS key 返回集合 key 中的所有成员 127.0.0.1:6379> SMEMBERSword 1) "fiends" 2) "girl" 3) "job"---------- SMOVE source destination member 将 member 元素从 source 集合移动到 destination 集合 127.0.0.1:6379> smoveword like girl (integer) 1127.0.0.1:6379> smembers like 1) "bike" 2) "ball" 3) "girl"---------- SPOP key 移除并返回集合中的一个随机元素 127.0.0.1:6379> smembers like 1) "bike" 2) "ball" 3) "girl" 127.0.0.1:6379> spop like "girl" 127.0.0.1:6379> smembers like 1) "bike" 2) "ball"---------- SRANDMEMBER key 那么返回集合中的一个随机元素但是不会移除set集合 127.0.0.1:6379> srandmember like "bike" 127.0.0.1:6379> smembers like 1) "bike" 2) "ball"---------- SREM key member [member ...] 移除集合 key 中的一个或多个 member 元素,不存在将被忽略127.0.0.1:6379> smembers like 1) "bike" 2) "ball" 127.0.0.1:6379> srem likebike (integer) 1 127.0.0.1:6379> srem likerunning (integer) 0---------- SUNION key 返回多个集合数据的并集 127.0.0.1:6379> keys * 1) "like" 2) "word" 127.0.0.1:6379> sunion like word 1) "ball" 2) "job" 3) "fiends"---------- SUNIONSTORE destination key [key ...] 将结果保存到 destination 集合,返回结果集 如果destination 没有会自动创建 127.0.0.1:6379> sunionstore beijinglike word (integer) 3 127.0.0.1:6379> smembers beijing 1) "ball" 2) "job" 3) "fiends"

【算法|redis 数据类型——key String Set】下一篇:redis 数据类型——Hash SortedSet List

    推荐阅读