启动
- linux redis-cli
- window redis-cli-.exe
数据类型
- string
属于
二进制
类型,可以包任何数据,一个key 最大储存512MB
set key value
get key value
- Hash 哈希
是一个键值对集合 string 类型的 field 和 value 的映射表, 适合存储
对象
// 设置
HMSET user:1 username admin password 123456 email 777@qq.com
// 获取
127.0.0.1:6379> HGETALL user:1
1) "username"
2) "admin"
3) "password"
4) "123456"
5) "email"
6) "777@qq.com"
- List 列表
字符串列表,插入顺序排序 , 类似于链表
127.0.0.1:6379> lpush array name
(integer) 1
127.0.0.1:6379> lpush arrat password
(integer) 1
127.0.0.1:6379> lpush array news
(integer) 2
127.0.0.1:6379> lpush array password
(integer) 3
127.0.0.1:6379> lrange array 0 10
1) "password"
2) "news"
3) "name"
127.0.0.1:6379>
- Set 集合
类似于数组,可以将你设置的 key 作为分类归类到集合中
初始化一个 set 即创建一个集合,集合元素是唯一的,第二次将忽略
127.0.0.1:6379> sadd collect user
(integer) 1
127.0.0.1:6379> sadd collect user
(integer) 0
127.0.0.1:6379>
zset 有序集合
zadd key score value
元素不允许重复 、 通过 score 来进行排序,是一个有序的集合
127.0.0.1:6379> zadd game 0 LOL
(integer) 1
127.0.0.1:6379> zadd game 2 CF
(integer) 1
127.0.0.1:6379> zadd game 1 WZ
(integer) 1
127.0.0.1:6379> ZRANGEBYSCORE game 0 5
1) "LOL"
2) "WZ"
3) "CF"
键 处理
操作一个
key
时,如果不存在,则返回0
GET key | SET key | DEL key
DUMP key 序列化一个键值
127.0.0.1:6379> dump name "\x00\x05admin\a\x00\x7f\xda\xe9])\x04\xa0\xd1" 127.0.0.1:6379>
EXISTS key :检查key是否存在 | 返回布尔值
Expire keyname | Exipire keyname timestamp : 设置过期时间
// 接受的是一个以秒为单位的 number 127.0.0.1:6379> Expire name 10 (integer) 1 127.0.0.1:6379> get name "admin" 127.0.0.1:6379> get name "admin" 127.0.0.1:6379> get name (nil) 127.0.0.1:6379> // 接受的是 一个 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间 127.0.0.1:6379> set name 1 OK 127.0.0.1:6379> EXPIREAT name 1293840000 (integer) 1 127.0.0.1:6379>
PEXPIREAT key milliseconds | PEXPIREAT key milliseconds-timestamp
分别以毫秒计算 | 时间戳以毫秒计算(默认 秒 )
127.0.0.1:6379> set name 1
OK
127.0.0.1:6379> PEXPIREAT name 1
(integer) 1
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379>
KEYS : 查找给定模式的key
KEYS 模式
MOVE : 移动到给定数据库中
move key db
当给定的
db
库中,key 以及存在的适合,移动失败,返回0
127.0.0.1:6379> set sone 'this a select'
OK
127.0.0.1:6379> move sone 1
(integer) 1
127.0.0.1:6379> exists song
(integer) 0
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> exists sone
(integer) 1
PERSIST key_name : 移除key的过期时间,使得 key 永不过期
PTTL key_name : 返回单位的过期时间
127.0.0.1:6379> EXPIRE name 30 (integer) 1 127.0.0.1:6379> PTTL name (integer) 24281 127.0.0.1:6379>
TTL : 以秒为单位返回过期时间
RANDOMKEY : 随机返回一个 key | 数据库为空时 返回nil
RENAME old_key_name new_key_name : 修改key的名称
Renamenx : 用于在新的 key 不存在时修改 key 的名称
字符串
SET key value : 设置key
GET key val: 获取key值
getrange 获取指定key中的 (截取指定字符串的值 )
127.0.0.1:6379> set name 'this my name' OK 127.0.0.1:6379> getrange name 0 4 "this " 127.0.0.1:6379>
思考 : redis的setbit这个bit怎么理解 ?
redis 是以 二进制的 形式 进行保存的,先通过ASCLL编码,将字符串数据转化为二进制保存在数据中,SETBIT key 1 0 : 第一个 0 即表明在二进制中,0代表的第几位,即 `offet` 偏移 :意思就是将 第0个二进制位的数字修改为 0
来源:知乎 - https://www.zhihu.com/question/27672245
NGET key key key :获取一个或多个 key 的值
SETEX key timeout value 设置值及其过期时间 (秒为单位)
PSETEX key1 EXPIRY :以毫秒为单位设置
key
的生存时间SETNX key val : 在指定的key不存在时,为其设置值,存在时,不会将其覆盖
SETRANGE key offset value : 覆盖给定 key 所储存的字符串值, 从偏移位 开始
127.0.0.1:6379> SETNX name admin3 (integer) 1 127.0.0.1:6379> get name "admin3" 127.0.0.1:6379> SETRANGE name 5 * (integer) 6 127.0.0.1:6379> get name "admin*"
STRLEN mey : 返回key value的长度
MSET key1 val1 key2 val2 : 一次设置多个key value 值
incry key incry_amount : 设定自增并且指定自增值, 默认为 1
incrbyfloat key incr_amount : 设定自增浮点值,当不存在时,默认为0 再加上指定的浮点值
DECR key : 自减
decrby key decrement : 自减增量值
APPEND key new_value : 添加到给定值的末尾
127.0.0.1:6379> incrbyfloat name17 15 "15" 127.0.0.1:6379> append name17 a (integer) 3 127.0.0.1:6379> get name17 "15a"
hash 命令
HSET key field value 将哈希表key设置为value
HMSET key filed1 val1 fild2 val2 : 设置多个
HDEL key field
HEXISTS key field :检查字段是否存在
HGETALL key : 获取指定key的所有字段和值
HINCRBY key field increment : 指定字段指定增量值
HKEYS key : 获取哈希表中的所有字段和值
HLEN key 获取哈希表中字段的数量
HSETNX key field value 只有在字段不存在时,这只哈希表字段的值
HVALS key 获取哈希表中的所有值
HSCAN key cursor [MATCH pattern] [COUNT count] : 迭代哈希表中的键值对。
列表 list
BLPOP list timeout ---------------- 移出,并获取列表的第一个元素,如果阻塞(数据不存在)则timeout 为等待时间,超时便停止
127.0.0.1:6379> BLPOP list 10 (nil) (10.04s) 127.0.0.1:6379>
BRPOP ------------ 同 , 获取最后一个元素
BRPOPLPUSH LIST1 LIST2 TIMEOUT ---------------- 弹出一个值,将弹出的值插入到另外一个列表中
RPUSH key value value2 : 添加
127.0.0.1:6379> RPUSH users admin admin1 admin2 (integer) 3 127.0.0.1:6379>
RPUSHX key value 为以存在的列表插入值到尾部
LUBDEX key index ------------- 通过索引获取列表元素
LINSERT key before|after pivot value ------------ 在指定值的前或者后插入值
LLEN key ----------- 获取列表的长度
LPOP key ------------ 移除并获取列表的第一个元素
LPUSH key value value --------- 插入到以存在的列表头部
LRANGE key start stop ---------- 获取指定范围内的元素
LREM key count value ---------- 移除列表中的元素 , count > 0 从头开始
LSET key index value ----------- 通过索引设置表元素的值
LTRIM key start stop ----- 保留指定区间的元素,其他都删除
集合 Set
SADD key menmber1 member2 --------- 向集合添加成员
SCARD key ------------- 获取集合的成员数
SDIFF key1 key2 ---------- 返回给定集合的差集
SDIFFSTORE key1 key2 key3 --- 将给定集合之间的差集储存在指定的集合中
SINTER key key2 返回给定所有集合的交集
SINTERSTORE key1 key2 key2---------返回给定交集并存储在key1 中
SMEMBERS key -------------- 返回集合中的所有成员
SMOVE key1 key2 member 将元素从key1 移动到 key2
SPOP --------------- 移除并返回集合中的一个随机元素
SRANDMEMBER key count ---------- 返回集合中的 count 个随机数
SREM key member1 member2 --------- 移除集合中的一个或多个成员
SUNIONSTORE dest key1 key2 key3 --------- 给定集合的并集存储在dest中
本文由 邓尘锋 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: May 4, 2019 at 11:40 am