当前位置:操作系统 > Unix/Linux >>

redis数据库学习笔记


redis数据库学习笔记
 
1,not only sql;
 
2,非关系型数据库。
 
3,特点:
 
key=>value形式对数据进行存储,比如:json,array
 
水平可扩展的??什么意思?
 
4,:
 
下载源码包:redis.io
 
解压缩:tar –zxvf redisxxxx
 
cd redisxxx
 
make //如果没有gcc编译器,请安装gcc yum install gcc
 
cp redis.conf /etc
 
cd src cp redis-benchmark redis-cli redis-server mkreleasehdr.sh redis-check-aof redis-check-dump redis-sentinel /usr/bin/
 
cd /usr/bin / redis-server /etc/redis.conf ps –ef | grep redis
 
ps –ef | grep redis
 
redis-cli
 
10,redis-cli shutdown
 
5,数据类型:string,hash.list,set zet;
 
sring:二进制安全的,可以包含任何数据,比如图片或者序列化数据。
 
 
6,操作方法
 
字符串操作:
 
set name wanghongli 同一个键只能有一个
 
exists mykey 判断某个键值是否存在。存在返回1,不存在返回0
 
setnx 如果key存在返回0 ,不覆盖。
 
setex 指定key value 的有效期 过期则返回空(nil) set name 10(s) wanghongli
 
setrange name 6 gmail.com 设定name字符串从第六个开始替换成gmail.com 成功返回的是修改后字符串的个数。
 
mset 成功ok 失败 0; mset key1 wanghongli key2 wanghongli2 key3 wanghongli3; 设置多个键值 key value key value
 
msetnx 成功ok 失败0 mset key1 wanghongli key2 wanghongli2 如果有一个存在,那么设置就会失败。
 
 
get key 获取字符串的值。
 
getset key value 设置新值,返回旧值。 Getset name wanghongli
 
getrange name 0 5 返回值得0到5的字符串。
 
mget key1 key2 key3
 
incr key5 将值加1 返回。设置某一个键
 
incrby key5 5 自增5
 
Decr key5 自减
 
Decrby key5 10; 自减10
 
append 给指定的key追加value append key_name .net
 
strlen strlen name 返回值得长度。
 
hash数据类型
 
是一个string类型的field 和value的映射表。特别适用于存储对象。减少内存,方便存取整个对象。
 
hset设置一个hash表。 Hset user:001 name wanghongli
 
hsetnx hsetnx user:001 name ‘wanghongli’
 
hmset 批量设置 hmset user:003 name wanghngli age 25 sex 1
 
hget user:001 name
 
hmget user:003 name age sex
 
hincrby hincrby user:003 age 20
 
hexists user:003 name 成功返回1
 
hlen 返回hash中字段数量 hlen user:003
 
hdel 删除字段 hdel user:003 age
 
hkeys 查看字段 hkeys user:001
 
hvals 返回hash表中所有的value hvals user:001
 
hgetall 获取某个hash中全部的key value
 
list类型
 
是一个链表,主要功能是push:向链表中压入元素。Pop 弹出一个元素。Redis的list类型其实就是一个每个子元素都是string类型的双向列表,list既可以作为栈,也可以作为队列。
 
lpush 从头部压入一个元素
 
lrange listname 0 -1 从头第一个元素到尾的第一个元素。
 
rpush尾部压入一个元素。rpush list2 ‘wanghongli’ rpush list2 ‘helloworld’ 先进先出
 
lrange 0 -1
 
linsert 在key对应的特定位置前或后添加字符串。
 
linsert list1 before world hello 在world前面插入一个hello元素。
 
lset 设定list中指定下标的元素值。lpush list1‘hello’ lset list1 0 ‘world’ lrange 0 -1;
 
lrem 从key对应的list 中删除n个和value相同的元素。(n<0 从尾删除,n=0全部删除)
 
lrem list5 1 ‘hello’ 从list5中删除一个和hello相同的值。
 
ltrim:保留指定key的值范围内的数据。
 
rpush list8 ‘one’ rpush list8 ‘two’ ltrim list8 1 -1 保留下来的顺序。
 
lpop :list头部删除一个元素,并返回删除的元素。Lpop list_name 相当于php中的array_pop(array_name);
 
rpop : list尾部弹出一个元素,并返回弹出的元素 rpop list_name
 
lpush:从头压入元素
 
rpush
 
rpoplpush :从列表尾部移除元素,从头部添加元素。
 
Rpoplpush mysqllist5 mysqllist6 从mysqllist5 尾部弹出元素,压入到mylist6 头部
 
lindex 返回名称为key的list中index位置的元素。 Lindex mylist1 1;
 
set类型:无序集合,不允许重复。
 
sadd 向集合中添加一个元素。sadd myset “hello”
 
smembers myset1 查看集合中又那些元素
 
srem myset1 “wangholngli” 删除集合中的一个元素。
 
spop 从集和里面随机的弹出一个元素 spop myset
 
sdiff 两个集合的差集 sdiff myset1 myset2 以第一个集合为标准。
 
sdiffstore 将返回回来的差集存储到另外一个集合里面 sdiffstore myset3 myset1 myset2
 
sinter 返回交集 sinter myset1 myset2
 
sinterstore 将交集存储到另外一个集合里面。sinter myset6 myset1 myset2
 
sunion 返回集合的并集。sunion myset1 myset2
 
sunionstore 返回集合的并集,并存储到另外一个集合里 sunionstore myset3 myset1 myset2.
 
smove 将一个集合中的元素,移动到另外一个集合中去。myset myset1 myset2 “hello” 将myset1 “hello” 移动到myset2中去。
 
scard 查看集合中元素个数。scard myset1 返回的是集合中的元素的个数。
 
sismember myset1 “hello” 判断某个元素是否为集合中的元素。成功1 失败0
 
srandmember myset1 随机返回一个元素,但不删除。
 
sorted sort 有序集合:set集合的升级,加了一个顺序属性。一列存value 一列存sort
 
zadd 集合中添加一个元素 zadd myset 1 one 1 是顺序值
 
zrange myset1 0 -1 withscores 读取集合中的元素,按照排序。
 
zrevrange myset1 0 -1
 
zrem zrem myset1 “wanghongli” 删除集合中的元素。
 
zincrby zincrby sset1 2 one 将集合中one元素的key增加2 是对顺序号进行增加。
 
zrank 按下标排序 ,返回一个元素的索引值 zrank myset3 “helloworld”
 
zrevrank 降序排序,在返回索引。
 
Zrangebyscore zrangebyscroe myset1 2 3 [withscores]
 
zcount 返回集合中score在给定区间内的数量。zcount sset 2 4
 
zcard set2 返回集合中元素的总格数。
 
zremrangebyrand 删除 按索引删除。
 
zremrangebyscroe 按顺序删除元素。
 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,