string常用操作
set key1 aminglinux
get key1
set key1 aming //一个key对应一个value,多次赋值,会覆盖前面的value
setnx key2 aaa //返回1
get key2
setnx key2 bbb //返回0
说明:setnx 如果key存在,则返回0,不存在会直接创建这个key
setex key3 10 1 //这个是用来给key设定过期时间的
mset key1 1 key2 2 key3 3 //同时设置多个key
mget key1 key2 key3
Hash数据常用操作
hset user1 name aming //建立hash
hset user1 age 30
hset user1 job it
hget all user1
hmset user2 name aming age 30 job it //批量建立键值对
hmget user2
hmget user2 name age job
hdel user2 job //删除指定filed
hkeys user2 //打印所有的key
hvals user2 //打印所有的values
hlen user2 //查看hash有几个filed
list数据常用操作
lpush lista a //从左侧压入一个元素
lpush lista b
lrange lista 0 -1 //0 为头,-1为尾
lpop lista //从左侧取出
rpush lista 1 //从右侧压入一个元素
rpush lista 2
lrange lista 0 -1
rpop lista //从右侧取第一个元素
linsert lista before 2 3 //在2的前面插入一个元素为3
lset lista 4 bbb //把第5个元素修改为bbb
lindex lista 0 //查看第1个元素
lindex lista 3 //查看第4个元素
llen lista //查看链表中有几个元素
set数据常用操作
sadd seta aaa //向集合seta中放入元素
smembers seta //查看集合中的所有元素
srem seta aaa //删除元素
spop seta //随机取出一个元素,删除
sdiff seta setb //求差集,以seta为标准
sdiffstore setcseta setb //求差集并且存储,存储到了setc里
sinter seta setb //求交集
sinterstore setdseta setb //将交集存储setd
sunionseta setb //求并集
sunionstore seteseta setb //求并集并存储到sete
sismemberseta aaa //判断一个元素是否属于一个集合
srandmember seta //随机取出一个元素,但不删除
zset数据常用操作
zadd zseta 11 123//创建有序集合
zrange zseta 0 -1 //显示所有元素,按顺序显示
zrange zseta 0 -1 withscores //可以带上分值
zrem zseta 222 //删除指定元素
zrank zseta 222 //返回元素的索引值,索引值从0开始,按score正向排序
zrevrank zseta 222 //同上,不同的是,按score反序排序
zrevrange zseta 0 -1 反序显示所有元素,并带分值
zcard zseta //返回集合中所有元素的个数
zcount zseta 1 10 // 返回分值范围1-10的元素个数
zrangebyscore zseta 1 10 // 返回分值范围1-10的元素
zremrangebyrank zseta 0 2 //删除索引范围0-2的元素,按score正向排序
zremrangebyscore zseta 1 10 //删除分值范围1-10的元素
键值相关操作
keys * //取出所有key
keys my* //模糊匹配
exists name //有name键 返回1 ,否则返回0;
del key1 // 删除一个key //成功返回1 ,否则返回0;
EXPIRE key1 100 //设置key1 100s后过期
ttl key // 查看键 还有多长时间过期,单位是s,当key 不存在时,返回-2 。 当 key 存在但没有设置剩余生存时间时,返回-1 。 否则,返回key 的剩余生存时间。
select 0 //代表选择当前数据库,默认进入0 数据库
move age 1 // 把age 移动到1 数据库
persist key1 //取消key1的过期时间
randomkey//随机返回一个key
rename oldname newname//重命名key
type key1 //返回键的类型
服务相关操作
dbsize //返回当前数据库中key的数目
info //返回redis数据库状态信息
flushdb //清空当前数据库中所有的键
flushall //清空所有数据库中的所有的key
php中应用redis
Redis扩展模块安装
wget https://codeload.github.com/phpredis/phpredis/zip/develop
mv develop phpredis.zip
unzip phpredis.zip
cd phpredis-develop
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
vim /usr/local/php/php.ini // 增加一行extension = redis.so
/usr/local/php/bin/php -m |grep redis 检查是否成功
php redis中文文档 http://www.cnblogs.com/weafer/archive/2011/09/21/2184059.html
Redis实现session共享
php.ini中加入
session.save_handler = "redis"
session.save_path = "tcp://127.0.0.1:6379"
或者apache虚拟主机加入
php_value session.save_handler " redis"
php_value session.save_path " tcp://127.0.0.1:6379"
或者php-fpm.conf对应的pool中加入
php_value[session.save_handler] = redis
php_value[session.save_path] = " tcp://127.0.0.1:6379 "
Redis存储session测试
wget http://study.lishiming.net/.mem_se.txt
mv .mem_se.txt /usr/local/apache2/htdocs/session.php
curl localhost/session.php
输出类似于 1443710814<br><br>1443710814<br><br>9jm6nom9ogojedj3pth0iscv22
连接redis:
/usr/local/redis/bin/redis-cli
127.0.0.1:6379> keys * //可以把所有的key都列出来
"PHPREDIS_SESSION:9jm6nom9ogojedj3pth0iscv22"
127.0.0.1:6379> get PHPREDIS_SESSION:9jm6nom9ogojedj3pth0iscv22
"TEST|i:1443710814;TEST3|i:1443710814;"