- 使用两种方式来操作
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命令手册
说明:
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 进行学习