1、打开redis的服务器
// redis6379.conf是表示自己配置的开启6379端口,默认的是redis.windows.conf配置文件。
// 默认使用的是redis-server.exe
F:\redis_install>redis-server.exe redis6379.conf
2、打开redis的客户端
F:\redis_install>redis-cli.exe
3、关于使用的参数
- keys * 表示查看当前表中所有的字段键名
127.0.0.1:6379> keys *
1) "a"
127.0.0.1:6379>
- Flushdb : 清空redis
127.0.0.1:6379> flushdb
OK
- set 键名 值 表示配置键名=值
127.0.0.1:6379> set a b
OK
- get 键名 表示获取当前键的值
127.0.0.1:6379> get a
"b"
- exists 键名 表示查看是redis中是否有该键名,如果有就返回1,如果没有就返回0
127.0.0.1:6379> exists a
(integer) 1
127.0.0.1:6379> exists c
(integer) 0
- del 键名 表示删除该简明,如果redis中有该键,就删除成功返回1,如果删除失败,返回0
127.0.0.1:6379> del a
(integer) 1
127.0.0.1:6379> del c
(integer) 0
- rename 旧键名 新键名 表示重命名键名
127.0.0.1:6379> rename b c
OK
- expire 键名 时间 表示多少秒之后删除该键
127.0.0.1:6379> expire b 2
(integer) 0
127.0.0.1:6379> expire c 2
(integer) 1
- ttl 键名 表示该键名存在多久,-1表示永久,-2表示不存在该键,整数表示具体时间秒
127.0.0.1:6379> ttl a
(integer) -1
127.0.0.1:6379> ttl c
(integer) -2
127.0.0.1:6379> ttl b
(integer) 56
127.0.0.1:6379> ttl b
(integer) 52
- persist 键名 表示取消过期时间
127.0.0.1:6379> expire b 60
(integer) 1
127.0.0.1:6379> ttl b
(integer) 57
127.0.0.1:6379> persist b
(integer) 1
127.0.0.1:6379> ttl b
(integer) -1
- incr 键名(该键的值必须为整数) 表示该键的值自动加1
127.0.0.1:6379> get a
"1"
127.0.0.1:6379> incr a
(integer) 2
- incrby 键 值 表示对key内容自增value大小
127.0.0.1:6379> incrby a 20
(integer) 22
- append 键 值 表示对字符串内容进行追加
127.0.0.1:6379> append c dwid
(integer) 7
127.0.0.1:6379> get c
"abcdwid"
- getset 键 新值 表示获取之前的值,将新值赋予该键
127.0.0.1:6379> getset c 12
"abcdwid"
127.0.0.1:6379> get c
"12"
- setnx 键 值 表示当存在该键时,不进行操作,当不存在该键时,设置键=值
127.0.0.1:6379> setnx c 3
(integer) 0
127.0.0.1:6379> get c
"12"
127.0.0.1:6379> setnx d 23
(integer) 1
127.0.0.1:6379> get d
"23"
- setex 键 过期时间 值 表示设置该键=值在过期时间之内有效,当超过时会自动删除该键
127.0.0.1:6379> setex e 60 abc
OK
127.0.0.1:6379> get e
"abc"
127.0.0.1:6379> get e
(nil)
4、在list数据结构中参数配置
list类型是双向链表结构,类似于java中的linkList的数据结构。是一个有序可重复的集合
- lpush key value1 value2 … 在集合的左边依次插入value值
127.0.0.1:6379> lpush l 1 2 3 4 5
(integer) 5
- lrange key startindex endindex 查询list集合数据
127.0.0.1:6379> lrange l 0 3
1) "5"
2) "4"
3) "3"
4) "2"
- Rpush key value1 value 2… 在集合的右边依次插入value
127.0.0.1:6379> rpush l 1 2 3
(integer) 7
- Llen key 获取集合长度
127.0.0.1:6379> llen l
(integer) 8
- Lindex key index 获取下标为index的值
127.0.0.1:6379> lindex l 0
"5"
- Lrem key count value 删除count个value
127.0.0.1:6379> lrem l 2 1
(integer) 2
127.0.0.1:6379> lrange l 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "2"
6) "3"
- Lpop keyList :取出并移除keyList的左边第一个元素
127.0.0.1:6379> lpop l
"5"
- Rpop keyList :取出并移除右边的第一个
127.0.0.1:6379> rpop l
"3"
- Rpoplpush keyList1 keyList2 取出keyList1最右边的值 插入keyList2的左边。能够保证弹出和压入的一致性。
127.0.0.1:6379> lpush k 1 2 3 4 5
(integer) 5
127.0.0.1:6379> rpoplpush k l
"1"
5、set数据结构
Set是一个无序的不能重复集合结构。查找和删除元素速度较快。适合存放不可重复的数据。提供集合的交集,差集,并集等操作。
- Sadd key value1 value2 … 向key中添加元素value1 …
127.0.0.1:6379> sadd s1 1 2 3 4 5
(integer) 5
127.0.0.1:6379> sadd s2 1 2 3 4 5 6
(integer) 6
127.0.0.1:6379> sadd s3 3 4 5 6 7 8
(integer) 6
- Smembers key 取出set 中的元素(无序)
127.0.0.1:6379> smembers s1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
- Srem key value 删除set中的某元素
127.0.0.1:6379> srem s1 1
(integer) 1
- Sismember key value 查看value是否在set中存在,当返回值为0表示不存在,当返回值为1表示存在。
127.0.0.1:6379> sismember s1 1
(integer) 0
127.0.0.1:6379> sismember s1 2
(integer) 1
- Scard key 获取set中元素个数
127.0.0.1:6379> scard s1
(integer) 4
- Sunion key1 key2 。。。 取出所有集合的并集,相同的取一次
127.0.0.1:6379> sunion s1 s2 s3
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "7"
8) "8"
- Sdiff key1 key2 … 差集,获取第一个set中有,而后面set没有的数据。
127.0.0.1:6379> sdiff s2 s1
1) "1"
2) "6"
- Sinter key1 key2 … 取出这些set的交集
127.0.0.1:6379> sinter s1 s2 s3
1) "3"
2) "4"
3) "5"
- Sinterstore dstKey key1 key2 … 将key1 key2 等的交集赋值给dstkey 。
127.0.0.1:6379> sinterstore s4 s1 s2
(integer) 4
127.0.0.1:6379> smembers s4
1) "2"
2) "3"
3) "4"
4) "5"
6、有序的set数据结构
有序的set。和set类似,不过内部有一个score来做排序的操作。Value 是唯一的 ,但是score可以相同。
- Zadd key score member 向sorted set中添加元素 分值为score 内容为member.
// z1 表示键名 10 表示权重 a表示值
127.0.0.1:6379> zadd z1 10 a
(integer) 1
127.0.0.1:6379> zadd z1 8 c
(integer) 1
127.0.0.1:6379> zadd z1 15 d
(integer) 1
- Zrange key start end [withscores] 取出元素,score从低到高。
127.0.0.1:6379> zrange z1 0 -1
1) "c"
2) "a"
3) "d"
- Zrevrange key start end [withscores] 取出元素 ,score从高到低。
127.0.0.1:6379> zrevrange z1 0 -1
1) "d"
2) "a"
3) "c"
- Zcard key 获取元素个数
127.0.0.1:6379> zcard z1
(integer) 3
- Zcount key min max key中score在min和max之间的元素个数。
// z1中score 在7 - 11 之间有 8 和 10 两个数据
127.0.0.1:6379> zcount z1 7 11
(integer) 2
- Zrem key member 删除某元素
127.0.0.1:6379> zrem z1 a
(integer) 1
7、hash数据结构
Hash类型是每个key对应一个hashtable。适合存储对象信息。
- Hset key filed value :key为对象名,filed为属性,value为属性值。(field -> value)
127.0.0.1:6379> hset h1 a 10
(integer) 1
127.0.0.1:6379> hset h1 b 20
(integer) 1
- Hget key filed 获取key对象的filed属性值
127.0.0.1:6379> hget h1 a
"10"
127.0.0.1:6379> hget h1 b
"20"
- Hmset key filed1 value1 filed2 value2 。。。设置多个属性
127.0.0.1:6379> hmset h1 c 10 d 30
OK
- Hgetall key :获取所有的属性
127.0.0.1:6379> hgetall h1
1) "a"
2) "10"
3) "b"
4) "20"
5) "c"
6) "10"
7) "d"
8) "30"
- Hlen key :属性个数
127.0.0.1:6379> hlen h1
(integer) 4
- Hexists key filed 是否存在filed属性
127.0.0.1:6379> hexists h1 a
(integer) 1
127.0.0.1:6379> hexists h1 e
(integer) 0
- Hkeys key 获取所有属性
127.0.0.1:6379> hkeys h1
1) "a"
2) "b"
3) "c"
4) "d"
- Hvals key 获取所有值
127.0.0.1:6379> hvals h1
1) "10"
2) "20"
3) "10"
4) "30"
关于redis的保存策略
redis是将设置的值保存在dump.rdb中,当删除dump.rdb,原先保存的数据将进行删除。它rdb的保存策略是:60s 300s 900s,可以在conf中看到它的策略。
save 900 1
save 300 10
save 60 10000
# By default Redis will stop accepting writes if RDB snapshots are enabled