命令行下 初识 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"
View Code

 

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数据。

-----------

直接下载总结好的,加压到网站根目录直接访问就可以使用。 下载地址

posted @ 2013-07-03 23:49  群叔  阅读(1138)  评论(0编辑  收藏  举报