启动
- 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] : 迭代哈希表中的键值对。
本文由 邓尘锋 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: May 4, 2019 at 11:31 am