redis笔记(1)基础

in with 0 comment

启动

数据类型

  1. string

属于二进制类型,可以包任何数据,一个key 最大储存512MB

set key value
get key value
  1. 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"
  1. 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>
  1. 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>
  1. 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

分别以毫秒计算 | 时间戳以毫秒计算(默认 秒 )

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>

当给定的 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

字符串

思考 : redis的setbit这个bit怎么理解 ?

redis 是以 二进制的 形式 进行保存的,先通过ASCLL编码,将字符串数据转化为二进制保存在数据中,SETBIT key 1 0 : 第一个 0 即表明在二进制中,0代表的第几位,即 `offet` 偏移 :意思就是将 第0个二进制位的数字修改为 0

来源:知乎 - https://www.zhihu.com/question/27672245

hash 命令

Comments are closed.