您的位置:首页 > 数据库 > Redis

Redis 命令操作

2016-08-06 15:15 267 查看
使用两种方式来操作

1、使用redis-cli来操作curd(增删改查)

2、使用php程序来操作curd(增删改查)在下一节提到

 

一、使用redis-cli来操作curd(增删改查)

启动 ./redis-service  redis.conf

连接到redis

./redis-cli -h ip 地址 -p 端口

     1、对string 的curd(增删改查)

        添加:

          set key value(将字符串值value关联到key)

    如果key已经持有其他值,set就覆盖旧值,无视类型

       举例说明:

               set name hello

使用客户端对redis进行curd操作,这里我们需要使用到redis给我们提供的命令

在redis中操作字符串string

这里重点讲解如何对字符串进行curd操作

[root@ugomi bin]# ./redis-cli
127.0.0.1:6379> set username liuyue
OK
127.0.0.1:6379> get username
"liuyue"
127.0.0.1:6379> get name
"hello"
127.0.0.1:6379> get
(error) ERR wrong number of arguments for 'get' command
127.0.0.1:6379> set name liuyue
OK
127.0.0.1:6379> get name
"liuyue"
127.0.0.1:6379> quit
You have new mail in /var/spool/mail/root
[root@ugomi bin]# ls
redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server
[root@ugomi bin]# pwd
/usr/local/redis/bin

   删除:

   del key(删除key-value)

   如:del name

  设置有效时间:

          expire key 时间值(按秒计算)

  如何查看某个key-value有多少时间

        ttl key

 如何查看当前redis中的所有key

     keys *

 

 

    概述:什么是list,list是一种数据库结构

     set(增加,修改)、get(获取)、del(删除)、keys(查看所有key)、expire(设置或修改有效时间)、ttl(返回某个key-value的有效时间)

redis命令手册

http://doc.redisfans.com/

说明:

redis指令不区分大小写,但是出于规范考虑,应该使用大写

 

 2、对list列表的curd操作,可以当做队列和栈来使用

  数据结构list,即在redis中操作list,这里重点讲解如何对list crud(增删改查)操作

     基本语法:

       LPUSH(将值value插入到列表key的表头)

   RPUSH(将值value插入到列表key的表尾)
   LPOP(移除并返回列表key的头元素)
   RPOP(移除并返回列表key的尾元素)
   Lrange(返回列表key中指定区间内的元素)
   LINDEX(可以指定返回第几个元素)
     添加:

        在list前面(左边)加

      LPUSH

LPUSH key value [value ...]

将一个或多个值 value 插入到列表 key 的表头

如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头: 比如说,对空列表 mylist 执行命令 LPUSH mylist a b c ,列表的值将是 c b a ,这等同于原子性地执行 LPUSH mylist a 、 LPUSH mylist b 和 LPUSH mylist c 三个命令。

如果 key 不存在,一个空列表会被创建并执行
LPUSH 操作。

当 key 存在但不是列表类型时,返回一个错误

举例说明:

127.0.0.1:6379> lpush ticketline "lishan"
(integer) 1
127.0.0.1:6379> lpush ticketline "zhanghsi"
(integer) 2
127.0.0.1:6379> lpush ticketline "zddds"
(integer) 3
127.0.0.1:6379> keys *
1) "name1"
2) "ticketline"
3) "username"
127.0.0.1:6379> lrange keys*
(error) ERR wrong number of arguments for 'lrange' command
127.0.0.1:6379> lrange key 0 3
(empty list or set)
127.0.0.1:6379> lrange ticketline 0 -1
1) "zddds"
2) "zhanghsi"
3) "lishan"
127.0.0.1:6379> del ticketline
(integer) 1
127.0.0.1:6379> lrange ticketline 0 -1
(empty list or set)

RPUSH

 

RPUSH key value [value ...]

将一个或多个值 value 插入到列表 key 的表尾(最右边)。

如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表尾:比如对一个空列表 mylist 执行 RPUSH mylist a b c ,得出的结果列表为 a b c ,等同于执行命令 RPUSH mylist a 、 RPUSH mylist b 、 RPUSH mylist c 。

如果 key 不存在,一个空列表会被创建并执行
RPUSH 操作。

当 key 存在但不是列表类型时,返回一个错误。

 

127.0.0.1:6379> rpush ticketline "liming"
(integer) 1
127.0.0.1:6379> rpush ticketline "zhangsan"
(integer) 2
127.0.0.1:6379> rpush ticketline "lisi"
(integer) 3
127.0.0.1:6379> lrange ticketline 0 -1
1) "liming"
2) "zhangsan"
3) "lisi"
127.0.0.1:6379> keys *
1) "name1"
2) "ticketline"
3) "username"

      

LINDEX

LINDEX key index

返回列表 key 中,下标为 index 的元素。

下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。

你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

如果 key 不是列表类型,返回一个错误。

 

LREM

 

LREM key count value

根据参数 count 的值,移除列表中与参数 value 相等的元素。

count 的值可以是以下几种:

count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。
count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。
count = 0 : 移除表中所有与 value 相等的值。
 

 

 

3、set集合操作

    SADD

SADD key member [member ...]

将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。

假如 key 不存在,则创建一个只包含 member 元素作成员的集合。

当 key 不是集合类型时,返回一个错误。

如:

 127.0.0.1:6379> SADD bbs "hello word"
(integer) 1
127.0.0.1:6379> SADD bbs "test1"
(integer) 1
127.0.0.1:6379> SADD bbs "test2"
(integer) 1
127.0.0.1:6379> SMEMBERS bbs
1) "test2"
2) "test1"
3) "hello word"

SREM

 

SREM key member [member ...]

移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。

当 key 不是集合类型,返回一个错误。

 127.0.0.1:6379> SMEMBERS bbs
1) "test2"
2) "test1"
3) "hello word"
127.0.0.1:6379> SREM bbs "hello word"
(integer) 1
127.0.0.1:6379> SMEMBERS bbs
1) "test2"
2) "test1"

 

SDIFF

 

SDIFF key [key ...]

返回一个集合的全部成员,该集合是所有给定集合之间的差集。

不存在的 key 被视为空集。

 127.0.0.1:6379> SMEMBERS bbs
1) "test2"
2) "test1"
127.0.0.1:6379> SDIFF test bbs
1) "test"
2) "test3"
3) "test4"

 

SMOVE

SMOVE source destination member

将 member 元素从 source 集合移动到 destination 集合。

SMOVE 是原子性操作。

如果 source 集合不存在或不包含指定的 member 元素,则
SMOVE 命令不执行任何操作,仅返回 0 。否则, member 元素从 source 集合中被移除,并添加到 destination 集合中去。

当 destination 集合已经包含 member 元素时,
SMOVE 命令只是简单地将 source 集合中的 member 元素删除。

当 source 或 destination 不是集合类型时,返回一个错误。

 127.0.0.1:6379> SMEMBERS word
(empty list or set)
127.0.0.1:6379> SMEMBERS hao
1) "test2"
2) "test1"
3) "hello word"
127.0.0.1:6379> SMOVE hao word "hello word"
(integer) 1
127.0.0.1:6379> SMEMBERS hao
1) "test2"
2) "test1"

SCARD

SCARD key

返回集合 key 的基数(集合中元素的数量)。

127.0.0.1:6379> SMEMBERS word
1) "test1"
2) "hello word"
127.0.0.1:6379> SMEMBERS word
1) "test1"
2) "hello word"
127.0.0.1:6379> SCARD word
(integer) 2

 

SISMEMBER

SISMEMBER key member

判断 member 元素是否集合 key 的成员。

 

127.0.0.1:6379> SMEMBERS word
1) "test1"
2) "hello word"
127.0.0.1:6379> SCARD word
(integer) 2
127.0.0.1:6379> SISMEMBER word test
(integer) 0
127.0.0.1:6379> SISMEMBER word test1
(integer) 1
127.0.0.1:6379>

 

以上是讲的redis部分命令操作,如果想学习更多的命令可参考redis手册
http://doc.redisfans.com 进行学习

 

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: