一、下载 访问https://github.com/nicolasff/phpredis,下载phpredis […]
redis
Redis(九) —— 安全
Redis(八) —— 简单命令之set、sortedset
一、set(无序的集合)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# sadd 将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。 # 语法 SADD key member [member ...] 127.0.0.1:6379> sadd set1 nihao hehe hello world (integer) 4 # smembers 返回集合 key 中的所有成员。 # 语法 SMEMBERS key 127.0.0.1:6379> smembers set1 1) "nihao" 2) "world" 3) "hello" 4) "hehe" # sismember 判断 member 元素是否集合 key 的成员。 # 语法 SISMEMBER key member # 是成员返回1 127.0.0.1:6379> sismember set1 nihao (integer) 1 # 不是成员返回0 127.0.0.1:6379> sismember set1 interface (integer) 0 # srandmember 如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素。 # 语法 SRANDMEMBER key [count] 127.0.0.1:6379> srandmember set1 1 1) "nihao" 127.0.0.1:6379> srandmember set1 1 1) "world" 127.0.0.1:6379> srandmember set1 1 1) "hehe" 127.0.0.1:6379> srandmember set1 1 1) "hello" 127.0.0.1:6379> srandmember set1 1 1) "nihao" 127.0.0.1:6379> srandmember set1 1 1) "nihao" 127.0.0.1:6379> srandmember set1 1 1) "hehe" # spop 随机获取一个元素,与srandmember不同,spop会在原集合中移除,srandmember则不会。 # smove 将 member 元素从 source 集合移动到 destination 集合。 # 语法 SMOVE source destination member # 下面命令的意思是 将set1中的hehe元素移动到set2 127.0.0.1:6379> smove set1 set2 hehe (integer) 1 127.0.0.1:6379> smembers set1 1) "nihao" 2) "world" 3) "hello" 127.0.0.1:6379> smembers set2 1) "hehe" # srem 移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。 # 语法 SREM key member [member ...] 127.0.0.1:6379> srem set1 hello world (integer) 2 127.0.0.1:6379> smembers set1 1) "nihao" # scard 返回集合 key 的基数(集合中元素的数量)。 127.0.0.1:6379> scard set1 (integer) 1 127.0.0.1:6379> smembers set3 1) "1" 2) "2" 3) "3" 127.0.0.1:6379> smembers set4 1) "2" 2) "3" 3) "4" # sinter 获取交集 127.0.0.1:6379> sinter set3 set4 1) "2" 2) "3" # sinterstore 区别于sinter就是,sinterstore会将交集保存到一个新的集合内 # 如下:将set3 set4的交集存放到set5中 127.0.0.1:6379> sinterstore set5 set3 set4 (integer) 2 127.0.0.1:6379> smembers set5 1) "2" 2) "3" # sdiff(差集)、sdiffstore、sunion(并集)、sunionstore类似于sinter和sinterstore |
二、sorted […]
Redis(七) —— 简单命令之list
Redis(六) —— 简单命令之string、hash
一、string
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# 设置值 127.0.0.1:6379> set key value OK # 获取值 127.0.0.1:6379> get key "value" #setnx 当key不存在是设置值,当key存在是忽略 如下 # num 不存在,设置成功,返回1表示true 127.0.0.1:6379> setnx num 1 (integer) 1 127.0.0.1:6379> get num "1" # key 存在,忽略操作,返回0表示false 127.0.0.1:6379> setnx key val (integer) 0 # 获取key,值未改变 127.0.0.1:6379> get key "value" # setex 将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位)。 # 设置key为 nihao 值为hehe 存在10秒 127.0.0.1:6379> setex nihao 10 hehe OK # TTL 查看剩余时间 127.0.0.1:6379> TTL nihao (integer) 7 127.0.0.1:6379> TTL nihao (integer) 5 # 10秒内可以获取值 127.0.0.1:6379> get nihao "hehe" 127.0.0.1:6379> TTL nihao (integer) 2 127.0.0.1:6379> TTL nihao (integer) 0 # 10秒后获取值为空 127.0.0.1:6379> get nihao (nil) # strlen 返回 key 所储存的字符串值的长度。 127.0.0.1:6379> strlen key (integer) 5 # setrange 用 value 参数覆写(overwrite)给定 key 所储存的字符串值,从偏移量 offset 开始。 127.0.0.1:6379> setrange key 3 UE (integer) 5 127.0.0.1:6379> get key "valUE" # getrange 返回 key 中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。 127.0.0.1:6379> getrange key 1 3 "alU" # incr 将 key 中储存的数字值增一。 # incrby 将 key 所储存的值加上增量 increment 。 # 原num为1, incr后,每次递增1 127.0.0.1:6379> incr num (integer) 2 127.0.0.1:6379> incr num (integer) 3 # incrby 递增指定数值,可以递增负数 127.0.0.1:6379> incrby num 10 (integer) 13 127.0.0.1:6379> incrby num -5 (integer) 8 # 注: decr、decrby 反之! # append 如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。 127.0.0.1:6379> append key 12345 (integer) 10 127.0.0.1:6379> get key "valUE12345" # getset 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。 127.0.0.1:6379> getset key helloworld "valUE12345" 127.0.0.1:6379> get key "helloworld" # mset 同时设置一个或多个 key-value 对。 # mget 返回所有(一个或多个)给定 key 的值。 127.0.0.1:6379> mset key1 val1 key2 val2 key3 val3 OK 127.0.0.1:6379> mget key1 key2 key3 1) "val1" 2) "val2" 3) "val3" # msetnx 类似 setnx # psetex 类似 setex, 以毫秒为单位 |
二、hash […]
Redis(五) —— 开机启动
一、准备工作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# 创建文件夹 mkdir -p /opt/data/redis/conf # 存放配置文件 mkdir -p /opt/data/redis/lib # 存放数据库数据 mkdir -p /opt/data/redis/log # 存放日志文件 # 当前目录在 /opt/data/redis 下 # 将conf文件移动至 /opt/data/redis/conf mv redis.conf conf/ # vim /conf/redis.conf # 将redis 设置为常驻进程 daemonize yes # 设置日志路径、数据库数据文件路径 logfile "/opt/data/redis/log/redis.log" dir /opt/data/redis/lib/ |
二、编写开机启动 […]
Redis(四) —— 应用场景
Redis(三) —— 配置文件
一、基本配置
1 2 3 4 5 6 7 8 9 10 11 |
# Note on units: when memory size is needed, it is possible to specify # it in the usual form of 1k 5GB 4M and so forth: # # 1k => 1000 bytes # 1kb => 1024 bytes # 1m => 1000000 bytes # 1mb => 1024*1024 bytes # 1g => 1000000000 bytes # 1gb => 1024*1024*1024 bytes # # units are case insensitive so 1GB 1Gb 1gB are all the same. |
Redis(二) —— 简单了解redis
一、简介
1 2 3 |
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。[1] Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。从盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。 |
二、性能 [crayon-600 […]