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 nagi hoo
(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> SMEMBERS word
1) "fiends"
2) "girl"
3) "job"
----------
SMOVE source destination member
将 member 元素从 source 集合移动到 destination 集合
127.0.0.1:6379> smove word like girl
(integer) 1
127.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 like bike
(integer) 1
127.0.0.1:6379> srem like running
(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 beijing like word
(integer) 3
127.0.0.1:6379> smembers beijing
1) "ball"
2) "job"
3) "fiends"