了解redis以及其基本命令

目录

  • 1 编译安装
  • 2 启动
  • 3 redis 是_
    • 3.1 远程字典服务
    • 3.2 内存数据库
    • 3.3 kv数据库
    • 3.4 数据结构数据库
      • 3.4.1 string 是一个安全的二进制字符串;
      • 3.4.2 双端队列 (链表) list :有序(插入有序);
      • 3.4.3 散列表 hash :对顺序不关注,field 是唯一的;
      • 3.4.4 无序集合 set :对顺序不关注,里面的值都是唯一的;
      • 3.4.5 有序集合 zset :对顺序是关注的,里面的值是唯一的;根据member 来确定唯一;根据 score (c1, c2, c3)来确定有序。
      • 3.4.5 总结:
  • 4 应用
  • 5 redis常用命令
    • 5.1 基本命令
    • 5.2 与range相关的命令
  • 6 redis 中 value 编码

1 编译安装

git clone https://gitee.com/mirrors/redis.git -b 6.2
cd redis
make -j4
make test -j4
sudo make install
默认安装在 /usr/local/bin
redis-server 是服务端程序
redis-cli 是客户端程序

2 启动

1 mkdir redis-data 把redis文件夹下 redis.conf 拷贝到 redis-data
2 修改 redis.conf
找到 #requirepass foobared
将注释符号(#)去掉,并将"foobared"替换为你想要的密码,譬如修改为: requirepass 123456
然后
3 cd redis-data
启动服务 redis-server redis.conf
4 客户端通过 redis-cli 访问 redis-server
redis-cli -h 127.0.0.1 -a 123456

3 redis 是_

3.1 远程字典服务

Dictionary Service 的简称;也是远程字典服务(一个独立运行的进程);
通过tcp 与 redis 建立连接交互;
请求回应模型:客户端发出请求后,会得到回应,客户会知道它的请求的结果;
通过字典的方式索引数据。

3.2 内存数据库

数据都在内存当中

3.3 kv数据库

存储方式:key - value 对是存储在一起的
操作方式:通过key去找到 key - value存储的位置

value是数据结构,通过key找到val(数据结构),然后再通过“命令”去操作数据结构。
有哪些“命令”?====> redis命令中心: http://redis.cn/commands.html
具体操作见第6节:数据演示

key 通过siphash进行哈希运算,生成一个64位的哈希值,然后对数组长度取余,算出key在数组中的下标,
value是key对应的数据结构,如下图:
了解redis以及其基本命令_第1张图片

3.4 数据结构数据库

通过k去访问 不同类型的数据结构
有哪些类型的数据结构呢?
常用的如下:

3.4.1 string 是一个安全的二进制字符串;

3.4.2 双端队列 (链表) list :有序(插入有序);

例如从左侧插入:
了解redis以及其基本命令_第2张图片
t1最先插入,所以被挤到了最右边,处在第四个元素的位置

3.4.3 散列表 hash :对顺序不关注,field 是唯一的;

了解redis以及其基本命令_第3张图片

3.4.4 无序集合 set :对顺序不关注,里面的值都是唯一的;

了解redis以及其基本命令_第4张图片

3.4.5 有序集合 zset :对顺序是关注的,里面的值是唯一的;根据member 来确定唯一;根据 score (c1, c2, c3)来确定有序。

了解redis以及其基本命令_第5张图片
t1,t2,t3按80 90 100 排序

3.4.5 总结:

了解redis以及其基本命令_第6张图片
上图中的c1, c2, c3 理解 score, 排序的依据; m1,m2,m3是member,用来确定唯一

4 应用

热点数据的缓存,以减轻磁盘数据的压力(hash)。
。。。

5 redis常用命令

5.1 基本命令

SET key value:设置键值对
GET key:获取指定键的值
DEL key:删除指定键
EXISTS key:判断指定键是否存在
INCR key:将指定键的值加 1,并返回新的值
DECR key:将指定键的值减 1,并返回新的值
KEYS pattern:查找所有符合模式匹配的键名列表
EXPIRE key seconds:设置指定键的过期时间(单位为秒)
TTL key:查询指定键还有多长时间过期(单位为秒)
HSET hash_key field value:在哈希表中设置字段和相应的值
HGET hash_key field:获取哈希表中字段对应的值
HMSET hash_key field value [field value …]:一次性设置哈希表中多个字段和相应的值
HMGET hash_key field [field …]:一次性获取哈希表中多个字段对应的值

5.2 与range相关的命令

Redis 中与 range 相关的命令主要有以下几种:

ZRANGE key start stop [WITHSCORES]:返回有序集合中指定索引范围内的成员,支持按分值排序和返回分值
ZREVRANGE key start stop [WITHSCORES]:返回有序集合中指定倒序索引范围内的成员,支持按分值排序和返回分值
LRANGE key start stop:返回列表中指定索引范围内的元素
LTRIM key start stop:对列表进行修剪,只保留指定索引范围内的元素
SRANDMEMBER key [count]:随机获取集合中一个或多个元素,支持重复元素
以上命令都支持指定起始和终止索引来限制返回结果的数量。其中 ZRANGE 和 ZREVRANGE 命令还支持 WITHSCORES 参数以便同时返回成员和其对应的分值。LRANGE 命令可以用于实现简单队列或栈功能
start, stop是标号,从0开始,当stop为 -1, 表示最后一个。
了解redis以及其基本命令_第7张图片

6 redis 中 value 编码

value就是key对应的数据结构,value会有各种各样的特征,因此需要预设一些规范。
常用如下:
了解redis以及其基本命令_第8张图片

你可能感兴趣的:(#,redis,redis,数据库)