命令行下 初识 redis 入门教程
1. redis-cli 命令行进入redis
set,get,
setex,给键值设置过期时间 setex name 10 DOG //设置name键 为 DOG 10秒后过期。
setnx,判断值是否存在,如果存在就不更新键值。如果不存在,则赋值。 (nx :not exist)
getset,设置一个新值,并返回key的旧值。
mset,批量设置键值。
msetnx,
mget,
setrange,替换值串部分。 客户端测试:
redis 127.0.0.1:6379> set email test@gmail.com OK redis 127.0.0.1:6379> setrange email 5 qq.com (integer) 14 redis 127.0.0.1:6379> get email "test@qq.comcom" redis 127.0.0.1:6379> set email test@qq.com OK redis 127.0.0.1:6379> get email "test@qq.com" redis 127.0.0.1:6379> setrange email 5 gmail.com (integer) 14 redis 127.0.0.1:6379> get email "test@gmail.com"//简而言之,替换部分如果未超过原来字符串,则原本未被替换的字符串被保留下来。 如果被替换部分长度超过原来,则显而易见。
getrange,
redis 127.0.0.1:6379> set key1 123456789 OK redis 127.0.0.1:6379> getrange key1 0 3 "1234"
incr,自增1, 如果键不存在,第一次自增相当于赋值 (decr)
redis 127.0.0.1:6379> set key1 12 OK redis 127.0.0.1:6379> incr key1 (integer) 13
incrby,增加 或 减少 (decrby)
redis 127.0.0.1:6379> set key1 5 OK redis 127.0.0.1:6379> incrby key1 -3 (integer) 2
append, 值后 拼接一个新字符串。 返回新串长度
strlen,
2. -------------------h : hash
这里截图2个, 说明普通键值对 与 hash key->value区别:
hset,hget,hdel,hmset,hmget, hincr, hincrby,
hlen,返回hash field的个数
hexists,
redis 127.0.0.1:6379> hexists user:001 name (integer) 1
hkeys,返回hash表 所有 field
hvals,返回hash表 所有 值
hgetall,返回hash表 所有 field 与 值
3.list
-------------------------------- 头
| |
| |
| |
| |
--------------------------------尾
lpush:从list头开始压入数据
rpush:从list尾开始压入数据
redis 127.0.0.1:6379> lpush list1 wo (integer) 1 redis 127.0.0.1:6379> lpush list1 cao (integer) 2 redis 127.0.0.1:6379> lpush list1 haha (integer) 3 redis 127.0.0.1:6379> lrange list1 0 -1//从头 = > 尾 依次是. 1) "haha"//头 2) "cao" 3) "wo"//尾 redis 127.0.0.1:6379> rpush list1 wo (integer) 1 redis 127.0.0.1:6379> rpush list1 cao (integer) 2 redis 127.0.0.1:6379> rpush list1 haha (integer) 3 redis 127.0.0.1:6379> lrange list1 0 -1 1) "wo" 2) "cao" 3) "haha"
linsert: 在堆栈数据中间 插入一个数据, 实例:在1,3之间插入2
redis 127.0.0.1:6379> del list1 (integer) 1 redis 127.0.0.1:6379> lpush list1 1 (integer) 1 redis 127.0.0.1:6379> lpush list1 3 (integer) 2 redis 127.0.0.1:6379> linsert list1 before 1 2 (integer) 3 redis 127.0.0.1:6379> lrange list1 0 -1 1) "3" 2) "2" 3) "1"
lset,对指定下标元素 进行赋值
lrem,删除相同对应value元素. lrem list1 2 one //删除list1中 2个 one 元素
ltrim,保留指定key范围内的数据.
redis 127.0.0.1:6379> lpush list1 one (integer) 1 redis 127.0.0.1:6379> lpush list1 two (integer) 2 redis 127.0.0.1:6379> lpush list1 three (integer) 3 redis 127.0.0.1:6379> ltrim list1 1 -1 OK redis 127.0.0.1:6379> lrange list1 0 -1 1) "two" 2) "one"
lpop:从头 弹出一个 元素.
rpop:从尾 弹出一个 元素.
rpoplpush list1 list2: 从list1尾部弹出元素 A 压入到 list2的头部
lindex : 返回list中 小标为 index的 元素值。 // lindex list1 0.
llen:
4.sets集合:无序集合 无重复元素
sadd: sadd set1 hello // sadd set1 world //sadd 不可以添加相同元素。 添加成功返回1
smembers:查看集合所有成员
srem: 删除成员
spop:随机弹出一个元素
sdiff:返回所有给定key与第一个key的差集
redis 127.0.0.1:6379> sadd set1 one (integer) 1 redis 127.0.0.1:6379> sadd set1 two (integer) 1 redis 127.0.0.1:6379> sadd set2 one (integer) 1 redis 127.0.0.1:6379> sadd set2 three (integer) 1 redis 127.0.0.1:6379> sdiff set1 set2 1) "two"
sdiffstore:将差集返回的 集合 存储到 另一个集合中。 sdiffstore set3 set1 set2 //返回set3的差集
redis> SMEMBERS peter's_movies 1) "bet man" 2) "start war" 3) "2012" redis> SMEMBERS joe's_movies 1) "hi, lady" 2) "Fast Five" 3) "2012" redis> SDIFF peter's_movies joe's_movies 1) "bet man" 2) "start war"
sinter:集合间取交集
sinterstore:
sunion: 返回 并集
sunionstore:
smove:从第一个集合从 移除 指定key 并且 添加到 第二个集合中
redis 127.0.0.1:6379> smove set1 set2 two (integer) 1 redis 127.0.0.1:6379> smembers set2 1) "three" 2) "two" 3) "one"
scard:查看集合元素个数
sismember: 判断 某元素 是否为 集合 当中 元素
srandmember:从集合中随机返回一个元素
5.sorted sets有序集合 zset
zadd:
zrange:
zrem:
redis 127.0.0.1:6379> zadd zset1 1 h (integer) 1 redis 127.0.0.1:6379> zadd zset1 2 i (integer) 1 redis 127.0.0.1:6379> zadd zset1 3 i//更新序号 (integer) 0 redis 127.0.0.1:6379> zrange zset1 0 -1 1) "h" 2) "i" redis 127.0.0.1:6379> zrange zset1 0 -1 withscores 1) "h" 2) "1" 3) "i" 4) "3" redis 127.0.0.1:6379> zrem zset1 i (integer) 1 redis 127.0.0.1:6379> zrange zset1 0 -1 withscores 1) "h" 2) "1"
zincrby:集合中添加某元素,如果此元素不存在则直接添加进去。 如果存在,则序号自增incr,值不变。
redis 127.0.0.1:6379> zincrby zset1 2 h "3" redis 127.0.0.1:6379> zrange zset1 0 -1 withscores 1) "h" 2) "3" redis 127.0.0.1:6379> zincrby zset1 1 i "1" redis 127.0.0.1:6379> zrange zset1 0 -1 withscores 1) "i" 2) "1" 3) "h" 4) "3"
zrank:返回集合 下标号
redis 127.0.0.1:6379> zrange zset1 0 -1 1) "i"//第0个元素 2) "h"//第1个元素 redis 127.0.0.1:6379> zrank zset1 i (integer) 0 redis 127.0.0.1:6379> zrank zset1 h (integer) 1
zrevrank:返回集合下标。 逆序排序后 得到指定元素的下标。 与zrank相反
zrevrange:降序排序
zrangebyscore:给定score范围内的元素
zscount:返回给定score区间内 元素个数
redis 127.0.0.1:6379> zrange zset1 0 -1 withscores 1) "i" 2) "1" 3) "twooo" 4) "2" 5) "h" 6) "3" 7) "teno" 8) "6" redis 127.0.0.1:6379> zrangebyscore zset1 2 9 1) "twooo" 2) "h" 3) "teno" redis 127.0.0.1:6379> zcount zset1 2 6// 区间是[] 包括左右两边 (integer) 3
zcard: 返回集合中所有元素个数
zremrangebyrank : 删除指定 索引 区间内的 元素
redis 127.0.0.1:6379> zrange zset1 0 -1 1) "i" 2) "twooo" 3) "h" 4) "teno" redis 127.0.0.1:6379> zremrangebyrank zset1 0 1 (integer) 2 redis 127.0.0.1:6379> zrange zset1 0 -1 1) "h" 2) "teno"
zremrangebyscore: 删除指定 score 区间内的 元素
6 :服务端:键值命令
keys * keys s*//模糊匹配keys
exists set1 //
del set1
expire //设置现有的键 的过期时间, 过期后 则被自动删除
select //选择数据库, redis-cli默认进去数据库0 , select 0 。 redis数据库有 0 - 15
move 将当前数据库中的key 移动到其他数据库中 move key1 2 //将当前数据库键key1 移动到数据库2中
persist 取消设置的过期时间
randomkey 随机返回当前数据库中key
rename
type 返回键 的数据类型
echo 直接在命令框 输出
dbsize 返回当前数据库 键 个数
info 返回redis服务器 相关信息
config get * //返回配置信息
flushdb //删除当前数据库 所有键
flushall //删除0-15数据库所有 键
问题1:界面版
php WEB版 在线管理 redis,动态监控数据,PHPRedisAdmin
https://github.com/ErikDubbelboer/phpRedisAdmin 下载 .zip
解压到根目录下
出现HTTP 500错误,查看日志error.log
[Wed Jul 03 10:20:28 2013] [error] [client XX.XXX.XX] PHP Warning: require_once(/var/www/phpRedisAdmin-master/predis/autoload.php): failed to open stream: No such file or directory in /var/www/phpRedisAdmin-master/includes/common.inc.php on line 35
还需要下载predis到PHPRedisAdmin 根目录下。
https://github.com/nrk/predis 下载.zip 解压
直接访问管理redis数据。
-----------
直接下载总结好的,加压到网站根目录直接访问就可以使用。 下载地址