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
推荐阅读
- 人工智能|干货!人体姿态估计与运动预测
- 分析COMP122 The Caesar Cipher
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)
- C语言学习(bit)|16.C语言进阶——深度剖析数据在内存中的存储
- Python机器学习基础与进阶|Python机器学习--集成学习算法--XGBoost算法
- 数据结构与算法|【算法】力扣第 266场周赛
- 数据结构和算法|LeetCode 的正确使用方式
- leetcode|今天开始记录自己的力扣之路
- 人工智能|【机器学习】深度盘点(详细介绍 Python 中的 7 种交叉验证方法!)
- 网络|简单聊聊压缩网络