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 是客户端程序
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
Dictionary Service 的简称;也是远程字典服务(一个独立运行的进程);
通过tcp 与 redis 建立连接交互;
请求回应模型:客户端发出请求后,会得到回应,客户会知道它的请求的结果;
通过字典的方式索引数据。
数据都在内存当中
存储方式:key - value 对是存储在一起的
操作方式:通过key去找到 key - value存储的位置
value是数据结构,通过key找到val(数据结构),然后再通过“命令”去操作数据结构。
有哪些“命令”?====> redis命令中心: http://redis.cn/commands.html
具体操作见第6节:数据演示
key 通过siphash进行哈希运算,生成一个64位的哈希值,然后对数组长度取余,算出key在数组中的下标,
value是key对应的数据结构,如下图:
通过k去访问 不同类型的数据结构
有哪些类型的数据结构呢?
常用的如下:
例如从左侧插入:
t1最先插入,所以被挤到了最右边,处在第四个元素的位置
上图中的c1, c2, c3 理解 score, 排序的依据; m1,m2,m3是member,用来确定唯一
热点数据的缓存,以减轻磁盘数据的压力(hash)。
。。。
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 …]:一次性获取哈希表中多个字段对应的值
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, 表示最后一个。