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