Redis 配置

Redis 配置放在文件名为 redis.conf 的文件中。
1、获取配置信息
语法:

CONFIG GET CONFIG_SETTING_NAME

样例:

192.168.56.101:0>CONFIG GET port
1) port
2) 6379

2、 编辑配置
语法:

CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

样例:

192.168.56.101:0>select 6  //选择数据库,选不选择不影响下面设置操作
OK

192.168.56.101:6>CONFIG GET timeout
1) timeout
2) 0
192.168.56.101:6>CONFIG SET timeout 5000
OK

192.168.56.101:6>CONFIG GET timeout
1) timeout
2) 5000

数据操作

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
1、String(字符串)
一个key对应一个value。一个键最大能存储512MB。string类型是二进制安全的。

192.168.56.101:6>SET name "hello"   //存值
OK

192.168.56.101:6>GET name       //取值
hello

2、Hash(哈希)
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。每个 hash 可以存储 232 - 1 键值对(40多亿)。

192.168.56.101:6>HMSET user name "张三" age 18    //存多个值   HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN 存单个值用 HSET KEY_NAME FIELD VALUE 
OK

192.168.56.101:6>HGET user age  //取值  HGET KEY_NAME FIELD_NAME 
18

192.168.56.101:6>HGET user name
张三

192.168.56.101:6>HGETALL user   //所有的字段和值  HGETALL KEY_NAME 
1) name
2) 张三
3) age
4) 18
5) sex
6) 男

192.168.56.101:6>HKEYS user  //获取key  HKEYS key 
1) name
2) age
3) sex

192.168.56.101:6>HLEN user  //获取哈希表中字段的数量
3

3、List(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。

192.168.56.101:6>lpush users admin //在users List中插入admin
1

192.168.56.101:6>lpush users guest
2

192.168.56.101:6>lpush users zhangsan
3

192.168.56.101:6>lrange users 0 10  //在users list中取出index为0到10的数据,超出的不显示
1) zhangsan
2) guest
3) admin
192.168.56.101:6>lrange users 
ERR wrong number of arguments for 'lrange' command

192.168.56.101:6>lrange users 0 3
1) zhangsan
2) guest
3) admin

4、Set(集合)
Redis的Set是string类型的无序集合。值不重复。

sadd 添加一个 string 元素到 key 对应的 set 集合中,成功返回1,如果元素已经在集合中返回 0,如果 key 对应的 set 不存在则返回错误。语法如下;

sadd key member

样例:

192.168.56.101:6>sadd tecq redis    //存值
1

192.168.56.101:6>sadd tecq redis    //插入重复的值,会不成功,返回0
0

192.168.56.101:6>sadd tecq moongodb
1

192.168.56.101:6>sadd tecq rabbitmq
1

192.168.56.101:6>smembers tecq  //取值
1) rabbitmq
2) moongodb
3) redis

5、zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合。且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

zadd命令添加元素到集合,元素在集合中存在则更新对应score,其语法如下:

zadd key score member 

样例:

192.168.56.101:6>zadd nosql 0 redis
1

192.168.56.101:6>zadd nosql 20 moongodb
1

192.168.56.101:6>zadd nosql 0 jedis
1

192.168.56.101:6>zadd nosql 2 neo4j
1

192.168.56.101:6>ZRANGEBYSCORE nosql 0 5  //按照 score 从小到大
1) jedis
2) redis
3) neo4j
192.168.56.101:6>ZRANGEBYSCORE nosql 0 0
1) jedis
2) redis
192.168.56.101:6>ZRANGEBYSCORE nosql 0 20
1) jedis
2) redis
3) neo4j
4) moongodb

key 相关

1、EXISTS KEY_NAME 检查给定 key 是否存在。若 key 存在返回 1 ,否则返回 0 。


192.168.56.101:6>exists tecp
0

192.168.56.101:6>exists tecq
1

2、DEL KEY_NAME 删除key。被删除 key 的数量。

192.168.56.101:6>del name
1

3、Expire KEY_NAME TIME_IN_SECONDS 设置 key 的过期时间,单位为 s(秒)。key 过期后将不再可用。设置成功返回 1 。 当 key 不存在或者不能为 key 设置过期时间时(比如在低于 2.1.3 版本的 Redis 中你尝试更新 key 的过期时间)返回 0 。

192.168.56.101:6>set name zhangsan 
OK

192.168.56.101:6>expire name 30
1

4、 TTL KEY_NAME 以秒为单位返回 key 的剩余过期时间。

192.168.56.101:6>set name zhangsan 
OK

192.168.56.101:6>expire name 60
1

192.168.56.101:6>ttl name    //已经过了6s
54