Redis的安装
Reids官网:https://redis.io/
1 2 3 4 5 6 7
| 1).下载地址:可以在官网下载最新版本 2).在该文件夹下输入cmd,进入黑窗口:'redis-server ./redis.windows.conf',可以看到运行效果图。基于C/S架构 3).运行:另启动一个cmd窗口,输入'redis-cli',当看到'127.0.0.1:6379'时,就可以启动成功了 4).'127.0.0.1:6379':127.0.0.1是本机ip,6379是Reids的服务端口,输入ping命令,返回PONG,就证明成功了。
|
Redis的数据类型
1 2 3 4 5 6 7
| Redis支持五种数据类型: string(字符串) hash(哈希) list(列表) set(集合) zset(sorted set:有序集合)
|
Redis的定义
1 2
| redis是一个key-value存储系统。redis的操作都是原子性的,redis支持各种不同方式的排序,redis的数据都是缓存在内存中。redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
|
Redis的优势
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| 1).redis是使用C语言开发,支持网络,可基于内存亦可持久化的日志型key-value数据库,为开发语言提供多种API 2).redis存储数据,可以将内存中的数据保存在磁盘中,重启可以再次加载。 3).redis分为几种类型 4).redis支持数据备份,master-slave模式的数据备份-->master:主人,slave:奴隶-->主从模式
1).性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。 2).丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 3).原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。 4).丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
1).用来做缓存 --- redis的所有数据是放在内存中(内存型的数据库) 2).可以应用在某些特定的场景,比如社交类应用 3).在一些大型的系统中,巧妙的实现一些特定的功能:购物车,session的共享
|
Redis的命令
1 2 3 4 5
| 1).启动redis服务器: redis-server 2).连接redis服务器: redis-cli 3).远程服务执行命令: redis-cli -h host -p port -a password
|
Redis keys命令
1 2 3 4 5 6 7 8 9 10 11 12
| 1).set key value 添加key值 2).get key 获取key值 3).del key key存在,删除key值 4).dump key 序列化给定key,返回被序列化得值 5).exists key 检查key是否存在 6).expire key seconds(秒数) 给key设置过期时间,以秒计时 7).keys */key 获取key名称 8).persist key 取消key的过期时间,key将永久保持 9).ttl key 以秒为单位,返回key的剩余过期时间 10).randomkey 从数据库随机返回一个key 11).rename key newkey 修改key名字 12).type key 返回key所储存的值的类型
|
Redis string命令
1 2 3 4 5 6 7 8
| 1).getrange key start end 返回key中value的值,从0开始 2).getset key value 将oldvalue改为newvalue,返回oldvalue 3).mget key1 key2 key3 获取多个key值 4).strlen key 返回value的长度 5).mst key1 value1 key2 value2 同时设置一个或多个key-value对 6).append key value 将指定的 value 追加到该 key 原来值(value)的末尾。 7).incr key 将key中储存的数字值+1 8).decr key 将key中储存的数字值-1
|
Redis hash命令
1 2 3 4 5 6 7 8 9 10 11 12
| (key=hash表,field=字段,value=值) Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象 1).hmset key filed1 value1 field2 value2 创建一个hash表key,指定字段和value 2).hdel key field1 field2 删除一个或多个hash表 3).hexists key field1 查看hash表中,指定field是否存在 4).hget key field 获取hash表指定字段得值 5).hgetall key 获取hash表所有字段和值 6).hkeys key 获取hash表中的字段 7).hlen key 获取hash表中字段的数量 8).hmget key field1 field2 获取hash表中给定字段的值 9).hset key field value 将hash表中字段得值设为value 10).hvals key 获取hash表中所有值
|
Redis list命令
1 2 3 4 5 6 7 8 9 10 11
| Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边) 1).lpush key value1 value2 创建一个key列表,插入值 2).lrange key start end 查询key列表,从start到end之间的value 3).blpop key timeout 删除第一个元素, 4).brpop key timeout 删除最后一个元素 5).lindex key index 根据索引获取列表中的元素 6).llen key 获取列表长度 7).lpop key 删除并获取第一个元素 8).lpush key value1 value2 将一个或多个值插入列表头部 9).lpushx key value 将一个值插入到已存在的列表头部 10).rpop key 删除列表的最后一个元素,返回删除的元素
|
Redis set命令
1 2 3 4 5 6 7 8 9 10 11
| Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。 Redis中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 1).sadd key value1 value2 创建一个集合,添加一个或多个值 2).scard key 获取集合的值的数量 3).sinter key1 key2 返回给定集合的交集 4).sismember key value 判断value是否在集合key中 5).smembers key 返回集合中的所有value 6).smove key1 key2 value 将value从key1集合移动到key2集合 7).spop key count 随机删除key集合中的count个元素 8).srandmember key count 随机返回key集合中的count个元素 9).srem key value1 value2 删除集合中的value元素
|
Redis set命令
1 2 3 4 5 6 7 8
| Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。 有序集合的成员是唯一的,但分数(score)却可以重复。 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 1).zadd key(有序集合) 分数 value 创建一个集合,并给出分数 2).zadd key start end withscore(分数) 查询集合从start到end之间的value,带分数 3).zcard key 获取有序集合和数量 4).zcount key min max 计算在有序集合中指定区间分数的数量
|